[Flutter]プロジェクト作成方法について

この記事は約9分で読めます。

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の生産的な開発につながります。

コメント

タイトルとURLをコピーしました