Flutter Version Management (FVM)にてマルチプロジェクトのFlutterバージョン管理
Flutter のマルチプロジェクトのお悩み
Flutterは、モバイル、ウェブ、デスクトップアプリケーションの開発において人気のあるフレームワークです。しかし、プロジェクトごとに異なるバージョンのFlutterを使用する必要がある場合、バージョン管理が課題となります。
Flutterのバージョンアップで前に作成したサンプルは動かなくなりました。
当時のFlutterとDartのバージョン情報も残ってないため、大変苦労しました。
そこで、Flutterのバージョン管理の探しに行きました。「Flutter Version Management(FVM)」っていうツールを見つかりました。
Flutter Version Management(FVM)とは?
FVMは、Flutter SDKの異なるバージョンを簡単にインストール、管理、および切り替えるためのコマンドラインツールです。これにより、複数のプロジェクトで異なるFlutterバージョンを使用する場合でも、効率的に管理できます。
FVMの主な機能
-
複数バージョンの管理:
FVMを使うと、複数のFlutterバージョンを簡単にインストールして管理できます。プロジェクトごとに特定のバージョンを指定できるため、異なるバージョン間の互換性問題を回避できます。
-
バージョンの切り替え:
プロジェクト間でFlutter SDKのバージョンを切り替えるのが非常に簡単です。プロジェクトディレクトリに移動してコマンドを実行するだけで、指定されたバージョンが自動的に適用されます。
-
安定性と一貫性:
特定のFlutterバージョンをプロジェクトに固定することで、開発チーム全体での環境の一貫性を保てます。これにより、異なるバージョンによるバグや予期しない挙動を防ぐことができます。
FVMのインストールと設定
以下のコマンドを実行することで、FVMをインストールできます。
Windows
choco install fvm
Mac
curl -fsSL https://fvm.app/install.sh | bash
FVMを使ったバージョン管理の実例
特定のFlutterバージョンで新しいプロジェクト作成
fvm spawn 3.22.2 create --platforms ios,android --org co.example --project-name demo .
既存プロジェクトでのFlutterバージョン指定
既存のプロジェクトでFVMを使用する場合も同様です。プロジェクトディレクトリに移動してから、指定したいバージョンを設定します。
fvm use 3.22.2
VSCodeでFVM関するコンフィグ
-
Flutterバージョンの指定
.fvmrc{ "flutter": "3.22.2", "flavors": { "dev": "3.22.2", "stg": "3.22.2", "prd": "3.22.2" }, "runPubGetOnSdkChanges": true, "updateVscodeSettings": true, "updateGitIgnore": true }
fvm use dev
でdevのバージョンに簡単に切り替えられます。Flutterバージョンアップの検証時に便利ではないかと思います。 -
VSCodeのコンフィグ
.vscode/settings.json{ "dart.flutterSdkPath": ".fvm/versions/3.22.2", // 検索時にfvmを除外 "search.exclude": { "**/.fvm": true }, // ワークスペースの監視から除外 "files.watcherExclude": { "**/.fvm": true } }
コマンド一覧
コマンド | 概要 |
---|---|
api | JSON API for FVM data |
config | Set global configuration settings for FVM |
dart | Proxies Dart Commands |
destroy | Destroy FVM cache by deleting FVM directory |
doctor | Shows information about environment, and project configuration. |
exec | Executes scripts with the configured Flutter SDK |
flutter | Proxies Flutter Commands |
global | Sets Flutter SDK Version as a global |
install | Installs Flutter SDK Version |
list | Lists installed Flutter SDK Versions |
releases | View all Flutter SDK releases available for install. |
remove | Removes Flutter SDK Version |
spawn | Spawns a command on a Flutter version |
use | Sets Flutter SDK Version you would like to use in a project |
まとめ
FVMは、Flutter開発におけるバージョン管理を大幅に簡素化するツールです。特に、複数のプロジェクトを扱う場合やチーム開発において、その利便性と安定性は非常に有用です。まだFVMを使用していない開発者やチームは、ぜひ導入を検討してみてください。Flutterのバージョン管理がより効率的になり、開発の生産性が向上することでしょう。
Discussion