クリーンアーキテクチャに基づいたマルチパッケージ構成のFlutterプロジェクトテンプレートです。
このプロジェクトは、以下のようなマルチパッケージ構成で設計されています:
sota_flutter_template/
├── app/ # メインアプリケーション
├── packages/ # 各種パッケージ
│ ├── domain/ # ドメイン層
│ ├── data/ # データ層
│ │ ├── adapter/ # リポジトリ実装
│ │ ├── api/ # API通信関連
│ │ └── local/ # ローカルストレージ関連
│ └── presentation/ # プレゼンテーション層
│ ├── component/ # 共通UIコンポーネント
│ └── page/ # 画面コンポーネント
└── pubspec.yaml # ワークスペース設定
このプロジェクトは、クリーンアーキテクチャの原則に基づいて設計されています。各層の責務は以下の通りです:
- domain: ドメインモデルとビジネスロジックを提供します
- adapter: リポジトリインターフェースの実装を提供します
- api: API通信のためのクライアントとデータ構造を提供します
- local: ローカルストレージへのアクセスを提供します
- component: 再利用可能なUIコンポーネントを提供します
- page: アプリケーションの画面コンポーネントを提供します
依存関係は以下のルールに従っています:
-
内側の層は外側の層に依存してはいけません
- domain → data, presentation (禁止)
- data → presentation (禁止)
- presentation → data (禁止)
-
許可される依存関係
- presentation → domain
- data → domain
- app → 全てのパッケージ
- リポジトリのクローン
git clone <repository-url>
cd sota_flutter_template- FVMを使用して.fvmrcに設定されたバージョンを使用
fvm use- 依存関係のインストール
fvm flutter pub get- very_good_analysisに基づいたリントルールが適用されています
- 各パッケージには個別のanalysis_options.yamlが含まれており、必要に応じてカスタマイズされています
各パッケージには独自のテストディレクトリがあり、ユニットテストとウィジェットテストを含めることができます。