Skip to content

yumemi-inc/flutter-mobile-project-template

Repository files navigation

Flutter モバイルプロジェクトテンプレート

概要

このプロジェクトは、株式会社ゆめみにおける Flutter モバイルアプリケーション開発を迅速に開始し、一定の品質基準を保つための標準テンプレートです。 主に以下の目的で作成・利用されることを想定しています。

開発初期コストの削減

Flutter プロジェクトの基本的なセットアップ(ディレクトリ構成、静的解析、CI/CD の雛形など)を共通化し、プロジェクト開始時の手間を軽減します。

品質の標準化

推奨されるコーディング規約や Lint ルールを導入済みとすることで、コードの可読性や保守性を高め、チーム開発における品質のばらつきを抑制します。

ベストプラクティスの共有

Flutter 開発における知見や推奨されるアーキテクチャパターンをテンプレートに集約し、開発チーム全体で共有します。

効率的な開発サイクルの実現

GitHub Actions を用いた CI/CD パイプラインの基本的なワークフロー(静的解析、テスト、ビルド)を提供し、開発サイクルの自動化を促進します。

スケーラビリティとメンテナンス性の向上

状態管理、ルーティング、多言語対応、テーマ管理、環境変数管理といった、プロジェクトの成長と長期的なメンテナンスを支える基本的な仕組みを提供します。

対象プロジェクト

本テンプレートは、以下の特性を持つ Flutter モバイルアプリケーションプロジェクトでの利用を推奨します。

プロジェクト規模

中規模から大規模プロジェクトを主な対象としています。

本テンプレートに含まれる状態管理 (Riverpod)、ルーティング (go_router)、多言語対応、テーマ管理、CI/CD 設定、ディレクトリ構成などは、一定以上の規模と複雑性を持つプロジェクトでの開発効率、品質維持、および長期的なメンテナンス性の向上を目的としています。

推奨されるケース

以下のようなケースでは、本テンプレートが適切な選択肢となります。

  • 新規に Flutter でモバイルアプリケーション開発を開始し、将来的な機能拡張やチームメンバーの増加が見込まれるプロジェクト
  • チームでの開発が前提とされ、コードの品質、開発プロセスの一貫性、スケーラビリティが重視されるプロジェクト
  • CI/CD を積極的に活用し、自動化されたテストとデプロイメントパイプラインを構築・運用したいプロジェクト

推奨されないケース

以下のようなケースでは、本テンプレートが提供する機能や規約がオーバースペックとなり、かえって開発のオーバーヘッドを増加させる可能性があります。よりシンプルな構成から始めることをご検討ください。

  • 小規模なプロジェクト
  • 短期的なプロトタイピング
  • 継続的な機能追加やメンテナンスを予定していないアプリケーション

本テンプレートの利用方法

以下の手順でプロジェクトを開始し、セットアップを進めてください。

1. GitHub テンプレート機能を利用してプロジェクトを新規作成

このリポジトリの GitHub ページ上部にある緑色の「Use this template」ボタンをクリックし、「Create a new repository」を選択して、必要な情報を入力し、リポジトリを作成します。

テンプレートからリポジトリを作成する - GitHub Docs

2. 初期セットアップワークフローの自動実行を待機

本テンプレートから新しいプロジェクトを作成すると、GitHub Actions による初期セットアップ支援ワークフロー (.github/workflows/initialization.yaml) が自動的に実行されます。このワークフローは、プロジェクト初期セットアップのためのタスクを記載した Issue を自動作成し、不要なファイルを削除するなどのクリーンアップ処理を実行します。

ワークフローの進行状況は新しく作成されたリポジトリの「Actions」タブから確認できます。

ワークフローの結果を表示する - GitHub Docs

3. 自動作成された Issue を確認して、初期セットアップ作業を実施

initialization というラベルの Issue を確認して、それぞれ対応を進めていきます。

本テンプレートの開発環境構築

本テンプレート自体を改善・開発するための環境構築手順については、以下のドキュメントを参照してください。

開発環境の構築手順 (GET_STARTED.md)