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

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/                # 路由配置

優れたプロジェクト構造はコードの保守性を向上させるため、アプリケーションの規模に応じて適切な構造を選択することをお勧めします。

その他の拡張