Flutter プロジェクト構造
Flutter プロジェクトのディレクトリ構造を理解することは、効率的な開発にとって極めて重要です。
このセクションでは、Flutter プロジェクトの各構成要素とその役割について詳しく説明します。
プロジェクトディレクトリ構造
次のコマンドを使用してflutter create新しいプロジェクトを作成すると、次のディレクトリ構造になります:
my_app/ ├── android/ # Android 平台相关代码 ├── ios/ # iOS 平台相关代码 ├── lib/ # Dart 代码目录(主要开发目录) │ └── main.dart # 应用入口文件 ├── web/ # Web 平台相关代码 ├── windows/ # Windows 桌面相关代码 ├── macos/ # macOS 桌面相关代码 ├── linux/ # Linux 桌面相关代码 ├── test/ # 测试代码目录 ├── pubspec.yaml # 项目配置文件 ├── pubspec.lock # 依赖锁定文件(自动生成) ├── analysis_options.yaml # Dart 分析器配置 └── README.md # 项目说明文件
主要ディレクトリとファイルの説明
lib/ ディレクトリ - コアコードディレクトリ
lib/このディレクトリは、Dart コードを記述する主要な場所です。すべてのアプリケーションロジックはここに配置する必要があります。
| ファイル/ディレクトリ | 説明 |
|---|---|
| main.dart | アプリのエントリファイルで、main 関数とルート Widget を含みます。 |
| *.dart | その他の Dart ソースファイル。通常は機能モジュールごとに編成されます。 |
android/ ディレクトリ - Android プラットフォーム
Android ネイティブプロジェクトファイルが含まれており、次の用途に使用します:
- アプリ名とアイコンの設定
- アプリの権限設定
- ネイティブ SDK(Google Play サービスなど)の統合
ios/ ディレクトリ - iOS プラットフォーム
iOS ネイティブプロジェクトファイル(Xcode プロジェクト)が含まれており、次の用途に使用します:
- アプリ名とアイコンの設定
- iOS 固有の設定
- CocoaPods 依存関係の統合
test/ ディレクトリ - テストコード
アプリのテストコードが含まれており、通常は以下を含みます:
- ユニットテスト
- Widget テスト
- 統合テスト
pubspec.yaml - プロジェクト設定
pubspec.yamlこれは Flutter プロジェクトの中心的な設定ファイルであり、プロジェクト名、バージョン、依存関係などを定義します。
例:pubspec.yaml サンプル
# プロジェクト名
name: my_app
# プロジェクトバージョン
version: 1.0.0+1
# プロジェクト説明
description: "私の最初の Flutter アプリ"
# 実行環境
environment:
sdk: ^3.0.0
# プロジェクト依存関係
dependencies:
flutter:
sdk: flutter
# サードパーティ依存関係の追加
http: ^1.0.0
provider: ^6.0.0
# 開発依存関係(開発時のみ使用)
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
# Flutter 設定
flutter:
uses-material-design: true
# リソースファイルの設定
assets:
- images/
- assets/data.json
name: my_app
# プロジェクトバージョン
version: 1.0.0+1
# プロジェクト説明
description: "私の最初の Flutter アプリ"
# 実行環境
environment:
sdk: ^3.0.0
# プロジェクト依存関係
dependencies:
flutter:
sdk: flutter
# サードパーティ依存関係の追加
http: ^1.0.0
provider: ^6.0.0
# 開発依存関係(開発時のみ使用)
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
# Flutter 設定
flutter:
uses-material-design: true
# リソースファイルの設定
assets:
- images/
- assets/data.json
pubspec.yaml の一般的なフィールド
| フィールド | 説明 |
|---|---|
| name | プロジェクト名。小文字とアンダースコアを使用する必要があります。 |
| version | プロジェクトのバージョン番号。形式は x.y.z です。 |
| description | プロジェクトの説明テキスト |
| dependencies | 実行時に依存するパッケージ |
| dev_dependencies | 開発時に依存するパッケージ(テストツールなど) |
| flutter.assets | パッケージ化する必要があるリソースファイル |
依存関係の管理
依存関係の追加
次のコマンドを使用してflutter pub add依存関係を追加します:
$ flutter pub add http
または手動で編集しpubspec.yamlた後に実行します:
$ flutter pub get
よく使う依存関係コマンド
| コマンド | 説明 |
|---|---|
| flutter pub get | すべての依存関係を取得 |
| flutter pub add package | 依存関係の追加 |
| flutter pub remove package | 依存関係の削除 |
| flutter pub outdated | 古くなった依存関係の確認 |
| flutter pub upgrade | 依存関係を最新バージョンにアップグレード |
推奨されるプロジェクト構造
アプリケーションの規模が大きくなるにつれて、明確なプロジェクト構造を採用することをお勧めします:
lib/ ├── main.dart # 入口文件 ├── app.dart # 应用配置 ├── core/ # 核心功能 │ ├── constants/ # 常量定义 │ ├── theme/ # 主题配置 │ └── utils/ # 工具类 ├── data/ # 数据层 │ ├── models/ # 数据模型 │ ├── repositories/ # 仓库(数据接口) │ └── services/ # 网络服务 ├── domain/ # 领域层 │ └── entities/ # 实体类 ├── presentation/ # 展示层 │ ├── pages/ # 页面 │ ├── widgets/ # 组件 │ └── providers/ # 状态管理 └── routes/ # 路由配置
その他の拡張優れたプロジェクト構造はコードの保守性を向上させるため、アプリケーションの規模に応じて適切な構造を選択することをお勧めします。