Flutter SDKのバージョンをプロジェクト別に指定する

複数のFlutterプロジェクトを1端末内で開発・保守する場合、プロジェクトごとに異なるFlutter SDKバージョンに切り替えられる管理ツールを導入する必要があります。
Flutterに対応した管理ツールとしてはFVMや今回紹介するasdfがあります。
asdf(とFlutterプラグイン)を使うと、次のようなことが可能になります。
- グローバル(端末全体)で使えるFlutterのインストール
- ローカル(特定フォルダ以下)で使えるFlutterのインストール
- プラグインを入れるとFlutter以外の開発環境(Node.jsやPHP、Rubyなど)にも対応可能
asdfのインストール
公式サイトの通りですが、今回はmacOSでHomebrewを使ってインストールします。
brew install asdf
asdfのパスを通すため、.zshrcに追記します。
bashなど別のシェルを使っている場合は、最後のパスを適宜変更してください。
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ~/.zshrc
source ~/.zshrc
Flutterプラグインのインストール
asdf plugin-add flutter
Flutter SDKのインストール
インストール可能なバージョン一覧を確認
asdf list all flutter
バージョンを指定してインストール
asdf install flutter 3.0.1-stable
プロジェクトにFlutterバージョンを適用する
Flutter SDKのバージョンを指定
次のようにプロジェクトのフォルダに移動し、Flutter SDKバージョンを指定します。
cd <プロジェクトのパス>
asdf local flutter 3.0.1-stable
flutter --version
IDEの設定
IDEによって異なりますが、Flutter SDKのパスを設定する必要があります。
以下にAndroid Studioと Visual Studio Codeの設定手順を記載します。
次の流れで設定画面を開く
Preferences->Languages & Frameworks->Flutter->Flutter SDK path:
次のようにパスを入力して適用する(<ユーザー名>は適宜変更)
/Users/<ユーザー名>/.asdf/installs/flutter/3.0.1-stable

次の流れで設定画面を開く
Code->基本設定->設定->「flutter sdk」で検索->Flutter Sdk Pathsの「項目の追加」
次のようにパスを入力して適用する(<ユーザー名>は適宜変更)
/Users/<ユーザー名>/.asdf/installs/flutter/3.0.1-stable

プラグインについて
asdfはFlutter以外にもPHPやNode.jsなどのバージョン管理も行えます。
利用可能なプラグインのリストは↓にあるので、必要に応じて試してみてください。
まとめ
Flutter SDKのバージョン管理ツール「asdf」のインストール方法と、プロジェクトごとにバージョン指定する方法についてご紹介しました。
PHPやNode.jsなどサーバーサイドの環境構築はDockerで行うことが増えてきたため使う機会がなさそうですが、FlutterのようにOSにインストールが必要なものでは積極的に活用していきたいと思います。