Flutterプロジェクトを新規で作成すると、以下の画像のように大量のフォルダとファイルが作成されて混乱してしまったことはありませんか?
直接さわらないファイルの方が多いと思いますが、初期に作成されるフォルダがどのように使われているのかまとめたのでご紹介します。
.dart_tool
.dart_toolフォルダには、プロジェクトで使用する各種ライブラリがインストールされています。FlutterではPubというパッケージマネージャーが、pubspec.yamlファイルに記載されたパッケージをダウンロードして、.dart_toolフォルダにインストールします。パッケージのバージョン情報、依存関係の解決に使用されたキャッシュファイルなども含まれています。
.idea
.ideaフォルダは、IDEがプロジェクトの設定を保存するのに使うフォルダです。プロジェクトの構成、ビルド設定、実行構成、バージョン管理の設定などが含まれます。
android
androidフォルダには、Androidアプリケーションのプロジェクトファイルが含まれています。このフォルダの中身を変更することで、アプリケーションの動作やビルド設定をカスタマイズすることができます。
Flutterは、AndroidアプリケーションのビルドにGradleビルドシステムを使用しています。Gradleは、ビルドに必要なライブラリや設定を自動的に解決することで、簡単にビルドができるようになっています。
具体的には以下のようなファイルが含まれています。
AndroidManifest.xml: Androidアプリケーションのマニフェストファイルで、アプリケーションの構成情報を定義しています。
build.gradle: アプリケーションのビルドスクリプト。ビルドに必要なライブラリや設定を定義します。
gradle.properties: Gradleビルドシステムの設定ファイル。ビルドに関する様々な設定を定義します。
gradlew、gradlew.bat: Gradleのラッパースクリプト。アプリケーションのビルドに必要なGradleバージョンを自動的にダウンロードしてビルドを実行できるようにします。
app/: Androidアプリケーションの実装コードが含まれるディレクトリです。
build
Flutterアプリケーションをビルドすると、ビルドに必要な情報がbuildフォルダに保存されます。ビルド情報の格納に使われ、ビルドが正常に実行されたとき、ビルドに必要な情報を生成するのに使われます。具体的には以下のような情報が含まれています。
app/outputs/: ビルドされたAPK(Androidアプリケーションパッケージ)が含まれます。debugビルドとreleaseビルドのAPKがあります。
ios/: iOSアプリケーションのビルドに関する情報が含まれます。ビルドに必要なファイルやビルドされたアプリケーションを含みます。
web/: Webアプリケーションのビルドに関する情報が含まれています。ビルドに必要なファイルやビルドされたアプリケーションを含みます。
ios
iOSアプリケーションをビルドするためのフォルダです。Xcodeプロジェクトファイルや、iOSプラットフォーム用の追加の設定が含まれています。
iOSのビルド設定を変更する必要がある場合などで編集が必要な場合は直接編集せず、Xcodeを使用して必要な設定を変更します。
lib
libフォルダには、アプリケーションのロジックやUIに関連するすべてのコードが含まれていて、一番さわることになるフォルダです。
このフォルダの中にあるmain.dartファイルはアプリケーションのエントリーポイントで、起動時に最初に実行されます。
linux, macos, web, windows
Flutterは、Linux, macOS, web, Windows用のアプリケーションをそれぞれビルドできます。それぞれのフォルダには各環境でアプリケーションを実行するために必要な設定やファイルが含まれます。
.metadata
.metadata
ファイルには、以下のようなFlutterのプロジェクトに関する情報が含まれています。
- Flutter SDKのバージョン情報
- プロジェクトの名前、ルートディレクトリ、および設定
- パッケージマネージャー(pubまたはnull safety pub)のバージョン情報
- Dart SDKのバージョン情報
- パッケージ依存関係の情報
このファイルを直接編集することはなく、Flutter SDKやDart SDKをアップグレードすることで更新され、パッケージ依存関係は、pubspec.yaml
ファイルで管理します。
analysis_options.yaml
Dartコードの静的解析ツールのDart Analyzerに渡すオプションの設定をするためのファイルです。Dart Analyzerは、コードの品質やエラーを検出するために使われています。
pubspec.yaml
アプリケーションの依存関係、アセットファイル、バージョン番号、アプリケーション名、作者、ライセンスなどの情報が記載されています。アプリケーションの設定情報を管理する重要なファイルです。
依存関係には、アプリケーションで使用する外部パッケージが含まれます。外部パッケージを追加する場合は、パッケージの名前とバージョンを指定します。