flutter create
は、Flutterプロジェクトを新規作成するための基本コマンドです。このコマンドは単なるプロジェクト生成以上の機能を持ち、既存プロジェクトの修復や、様々なテンプレートからの開発開始をサポートします。本記事では、すべてのオプションを網羅的に解説し、実践的な使用例を紹介します。
基本構文
flutter create <出力ディレクトリ>
主要オプション一覧
プロジェクト基本設定
--project-name
プロジェクト名を指定します。Dartパッケージ命名規則に従う必要があります(小文字、アンダースコア使用可)。
--org
組織名を逆ドメイン形式で指定します。Androidのパッケージ名やiOSのBundle Identifierのプレフィックスとして使用されます。
デフォルト値: com.example
--description
プロジェクトの説明文。pubspec.yaml
ファイルに記載されます。
デフォルト値: "A new Flutter project."
テンプレート選択 (-t, --template)
プロジェクトの種類を指定する最も重要なオプションです。
テンプレート用途app
:標準のFlutterアプリケーション(デフォルト)module:
既存のiOS/Androidアプリに組み込む
Flutter:モジュールpackage:
DartコードのみのFlutterパッケージplugin
:Method Channelsを使用したプラットフォーム固有実装を含むプラグインplugin_ffi
:dart:ffiを使用したネイティブコード連携プラグインskeleton
(非推奨):リスト/詳細ビューのサンプルアプリ
プラットフォーム設定
--platforms
サポートするプラットフォームを指定します。app/pluginテンプレート使用時のみ有効です。
デフォルト: すべてのプラットフォーム(ios, android, windows, linux, macos, web)
例:
bash
# モバイルのみ
flutter create --platforms=ios,android my_mobile_app
# デスクトップのみ
flutter create --platforms=windows,macos,linux my_desktop_app
言語設定
-a
, --android-language
Android固有コードの言語を選択します。
kotlin
(推奨、デフォルト)java
(レガシー)
依存関係管理
--[no-]pub
プロジェクト作成後にflutter pub get
を自動実行するかを制御します。
デフォルト: 有効
--[no-]offline
flutter pub get
をオフラインモードで実行します。pub cacheに依存関係が必要です。
サンプルコード関連
-s
, --sample=<id>
Flutter公式ドキュメントのサンプルコードをmain.dartとして使用します。
例:
bash
flutter create --sample=widgets.SingleChildScrollView.1 my_sample_app
-e
, --[no-]empty
最小限のmain.dartでプロジェクトを作成します(コメントなし)。
--list-samples=<path>
利用可能なサンプル一覧をJSON形式で出力します。
その他のオプション
--[no-]overwrite
既存ファイルを上書きします。プロジェクト修復時に便利です。
実践的なコマンドサンプル
1. すべてのオプションを指定した汎用コマンド
bash
flutter create \
--project-name my_awesome_app \
--org com.mycompany \
--description "An innovative Flutter application for our business" \
--template app \
--platforms ios,android,web \
--android-language kotlin \
--pub \
--overwrite \
my_awesome_app
2. シーン別コマンド例
エンタープライズアプリを作成したい場合
bash
flutter create \
--project-name corporate_portal \
--org jp.co.yourcompany \
--description "社内ポータルアプリケーション" \
--platforms ios,android \
--android-language kotlin \
corporate_portal
ポイント:
- 組織ドメインを正確に設定
- 必要なプラットフォームのみ指定
- Kotlinを使用(モダンな開発)
既存ネイティブアプリにFlutterを組み込みたい場合
bash
flutter create \
--template module \
--org com.existingapp \
--project-name flutter_module \
flutter_module
ポイント:
module
テンプレートを使用- 既存アプリの組織名と一致させる
オープンソースのFlutterパッケージを作成したい場合
bash
flutter create \
--template package \
--project-name awesome_utils \
--description "Utility functions for Flutter developers" \
--org dev.opensource \
awesome_utils
ポイント:
package
テンプレートでDartコードのみ- 明確な説明を記載
ネイティブ機能を持つプラグインを開発したい場合
bash
flutter create \
--template plugin \
--project-name native_camera \
--platforms ios,android \
--android-language kotlin \
--org com.plugins \
native_camera
ポイント:
- Method Channelsベースの
plugin
- FFI使用の場合は
plugin_ffi
を選択
クリーンなスタートポイントが欲しい場合
bash
flutter create \
--empty \
--project-name clean_start \
clean_start
ポイント:
--empty
で最小限のコード- サンプルコードやコメントなし
公式サンプルから学習を始めたい場合
bash
# 利用可能なサンプル一覧を確認
flutter create --list-samples=samples.json
# 特定のサンプルでプロジェクト作成
flutter create \
--sample=material.AppBar.1 \
--project-name appbar_example \
appbar_example
Web専用アプリを作成したい場合
bash
flutter create \
--platforms web \
--project-name web_dashboard \
--org com.webapps \
web_dashboard
デスクトップアプリ(Windows/Mac/Linux)を作成したい場合
bash
flutter create \
--platforms windows,macos,linux \
--project-name desktop_tool \
--org com.desktop \
desktop_tool
プロジェクト修復機能
既存プロジェクトでflutter create
を実行すると、欠損ファイルを再生成します。
bash
cd existing_project
flutter create . --overwrite
使用例:
- Gitで管理していないプラットフォームフォルダを再生成
- 破損したプロジェクトファイルの修復
- プラットフォームの追加
ベストプラクティス
1. プロジェクト命名規則
bash
# 良い例
flutter create my_app
flutter create user_dashboard
# 悪い例
flutter create MyApp # 大文字は使用不可
flutter create my-app # ハイフンは使用不可
2. 組織名の設定
bash
# 商用アプリ
--org com.yourcompany
# 個人開発
--org dev.yourname
# オープンソース
--org io.github.username
3. 不要なプラットフォームは除外
bash
# モバイル専用ならデスクトップを除外
flutter create --platforms ios,android mobile_app
メリット:
- プロジェクトサイズの削減
- ビルド時間の短縮
- 保守性の向上
トラブルシューティング
pub getが失敗する場合
bash
flutter create --no-pub my_app
cd my_app
flutter pub get
オフライン環境での作成
bash
flutter create --offline my_app
既存ディレクトリとの競合
bash
flutter create --overwrite existing_directory
まとめ
flutter create
コマンドは、用途に応じて適切なオプションを選択することで、開発の初期設定を大幅に効率化できます。特に:
- 新規アプリ開発:
--template app
(デフォルト) - 既存アプリへの統合:
--template module
- パッケージ開発:
--template package
- プラグイン開発:
--template plugin
またはplugin_ffi
これらを理解し、プロジェクトの特性に合わせて使い分けることが、Flutterの生産的な開発につながります。
コメント