富山のシステム開発・Web制作会社

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の設定手順を記載します。

Android Studio

次の流れで設定画面を開く
Preferences->Languages & Frameworks->Flutter->Flutter SDK path:

次のようにパスを入力して適用する(<ユーザー名>は適宜変更)


/Users/<ユーザー名>/.asdf/installs/flutter/3.0.1-stable

Android StudioのFlutter SDKパス設定 Visual Studio Code

次の流れで設定画面を開く
Code->基本設定->設定->「flutter sdk」で検索->Flutter Sdk Pathsの「項目の追加」

次のようにパスを入力して適用する(<ユーザー名>は適宜変更)


/Users/<ユーザー名>/.asdf/installs/flutter/3.0.1-stable

Visual Studio CodeのFlutter SDKパス設定

プラグインについて

asdfはFlutter以外にもPHPやNode.jsなどのバージョン管理も行えます。
利用可能なプラグインのリストは↓にあるので、必要に応じて試してみてください。

対応プラグインのリスト

まとめ

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

この記事を書いた人
Chief Technology Officer

よく読まれている記事

TensorFlow Lite Model Makerでカスタムモデルを作成する

LaravelとBackpackで構築した管理画面をカスタマイズする

【CSS】コンテンツ量が少ない時だけフッターを下部に固定する方法

LaravelとBackpackで管理画面を爆速で構築する

アクセス数バク上がり!MARBLEのアクセス数増加方法を大公開!

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

メタバースとWEB3.0について

Laravel TelescopeとTelescope Toolbarで効率よくデバッグする

Safariでclamp()が効かない場合の対処法

【サンプルあり】今すぐ使える!便利な比較関数 min() max() clamp() のお話

関連記事

TensorFlow Lite Model Makerでカスタムモデルを作成する

LaravelとBackpackで構築した管理画面をカスタマイズする

【CSS】コンテンツ量が少ない時だけフッターを下部に固定する方法