Skip to content

フォルダ構成


Flutterプロジェクトのフォルダ構成は、アプリケーションの開発効率とメンテナンス性を向上させるために重要です。以下に、主要なフォルダの役割を紹介します。

メインのDartコードを書く場所です。

  • main.dart: アプリのエントリーポイントです。アプリケーションの起動とルーティングを管理します。
  • screens/: 各画面のUIを定義します。画面ごとにファイルを分けて管理します。
  • widgets/: 再利用可能なウィジェットを定義します。共通のUIコンポーネントをここに配置します。
  • models/: データモデルを定義します。アプリケーションで使用するデータ構造をここに配置します。
  • services/: API通信やデータベース処理を行うサービスを定義します。
  • utils/: ユーティリティ関数を定義します。共通のロジックをここに配置します。
  • route/: ルーティング関連のファイルを管理します。
    • routes.dart: アプリケーションのルーティングを管理します。

Android固有の設定やネイティブコードを管理します。

  • app/build.gradle: Android依存関係とビルド設定を管理します。
  • app/src/main/AndroidManifest.xml: アプリの権限、アクティビティ設定を管理します。
  • app/src/main/kotlin/: Android用のネイティブコードを管理します(必要な場合)。
  • app/src/main/res/: アイコン、スプラッシュ画面などのリソースを管理します。

iOS固有の設定やネイティブコードを管理します。

  • Runner.xcodeproj: Xcodeプロジェクト設定を管理します。
  • Runner/Info.plist: iOS権限、設定情報を管理します。
  • Runner/Assets.xcassets: アプリアイコン、画像リソースを管理します。

画像、フォント、設定ファイルなどの静的リソースを管理します。

ユニットテストとウィジェットテストを管理します。

Web版アプリ用の設定を管理します。

フォルダ構成を設計する際のベストプラクティスや、よくある問題の解決策を以下に示します。

  • 一貫した命名規則: フォルダやファイルの命名規則を一貫させ、チーム全体で統一します。
  • モジュール化: 機能ごとにフォルダを分け、コードのモジュール化を図ります。これにより、コードの再利用性とメンテナンス性が向上します。
  • ドキュメントの整備: 各フォルダの役割や使用方法をドキュメント化し、新しいメンバーがプロジェクトに参加しやすくします。
  • フォルダの肥大化: フォルダが肥大化した場合、サブフォルダを作成して整理します。例えば、screens/フォルダ内にhome/settings/などのサブフォルダを作成します。

  • 依存関係の管理: 依存関係が複雑になる場合、pubspec.yamlを適切に管理し、不要な依存関係を削除します。

  • プラットフォーム固有のコードの管理: プラットフォーム固有のコードは、android/ios/フォルダに分けて管理し、共通コードと分離します。