転職したらスマレジだった件

スマレジのエンジニアやまてのテックブログです。マジレス大歓迎です。

Flutter の環境構築|asdf の導入

はじめに

Flutter 開発環境の構築について、遭遇したエラーなどのつまずいた点、分からなくて調べた点などを含めて書き出します。

今回は、 asdf というバージョン管理ツールの導入して、指定バージョンの Flutter をインストールする方法をまとめます。

主に公式の Getting Started の内容を参考にしています。

Flutter をバージョン管理するためのツールの選択肢

Flutter をバージョン管理するためのツールの選択肢としては、以下が挙げられるようです。

どちらが良いのかは賛否あるようですが、 asdf を使ってみます。 FVM は Flutter 専用だけど、 asdf は Flutter 以外でも使えるようなので、今回でしっかり使い慣れておきたいです。

環境

目次

1. asdf のインストール

まずは asdf をインストールします。

1-1. Homebrew での asdf のインストール

下記 brew コマンドで、 asdf をインストールします。

brew install asdf

1-2. shell への追加

私の環境は「ZSH & Homebrew」なので、以下のコマンドを実行します。

echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

2. asdf での Flutter プラグインのインストール

先ほどインストールした asdf コマンドを実行して、 Flutter をインストールします。

asdf plugin add flutter

3. プロジェクトで利用するバージョンの Flutter のインストール

asdf でバージョン管理する場合、以下の単位で Flutter のインストールができます。

  • ローカル(プロジェクト単位、特定のディレクトリ以下)
  • グローバル(PC全体)

3-1. プロジェクトのルートディレクトリへ移動

まずは、ローカル(プロジェクト単位、特定のディレクトリ以下)での設定をします。

Flutter のプロジェクトのルートディレクトリへ移動します。

3-2. .tool-versions の作成・編集

以下のコマンドで、インストール可能なバージョンの一覧を取得できます。

asdf list all flutter

以下のコマンドを実行して、.tool-versions を作成します。

asdf local flutter 3.7.1-stable

以下の通り指定した Flutter のバージョンを記述した .tool-versions がプロジェクトのルートディレクトリに作成されます。

flutter 3.7.1-stable

3-3. 指定したバージョンの Flutter のインストール

下記コマンドを実行すると、 .tool-versions で指定したバージョンの Flutter がインストールされます。

asdf install

jq: command not found というエラーが出た場合…

$ asdf install
/Users/r_yamate/.asdf/plugins/flutter/bin/install: line 25: jq: command not found
/Users/r_yamate/.asdf/plugins/flutter/bin/install: line 26: jq: command not found
/Users/r_yamate/.asdf/plugins/flutter/bin/install: line 27: [: -gt: unary operator expected
Cannot find the download url for the version: 3.3.10-stable

以下のコマンドを実行して、jq をインストールします。

brew install jq

jq コマンドとは?

jqコマンドは、JSONデータから目的の情報を抽出するのに便利な機能を提供しています。

www.wakuwakubank.com

3-4. shim の再生成

shim は、asdf exec というヘルパープログラムに、「プラグインの名前」と「 shim がラップしているインストール済みパッケージの実行ファイルへのパス」を渡す、単純なラッパーです。

下記のコマンドを実行して、shims ディレクトリ内のスクリプトを再生成します。

asdf reshim

flutter の shim は、以下の内容です。

$ cat ~/.asdf/shims/flutter
#!/usr/bin/env bash
# asdf-plugin: flutter 3.3.10-stable
# asdf-plugin: flutter 3.7.0-stable
# asdf-plugin: flutter 3.7.1-stable
exec /usr/local/opt/asdf/libexec/bin/asdf exec "flutter" "$@" # asdf_allow: ' asdf '

参考. インストール済みバージョン一覧の取得

以下のコマンドで、インストール済みバージョン一覧を取得できます。

asdf list flutter

asdf-vm.com

4. グローバルで利用する flutter のバージョンの設定

グローバルデフォルトは、 $HOME/.tool-versions で管理されます。

以下を使用してグローバルバージョンを設定します。

asdf global flutter 3.3.10-stable

$HOME/.tool-versions が次のように更新されました。

$ cat ~/.tool-versions
flutter 3.3.10-stable

Flutter がインストールされているかの確認

以下コマンドを実行します。

flutter --version

うまくいっていれば、グローバルとローカルでそれぞれ設定したバージョンが表示されます。

5. VS Code での PATH の設定

VS Code での PATH を設定します。

Code → 基本設定 → 設定 を開きます。

「flutter sdk」と検索すると、「Dart: Flutter Sdk Paths」という項目が出てきます。

「項目の追加」を選択して、以下の通り、指定します。

/Users/{ユーザー名}/.asdf/installs/flutter/

おわりに

今回は、 asdf というバージョン管理ツールの導入して、指定バージョンの Flutter をインストールする方法をまとめました。

今後も Flutter に関連する記事を書いていきます。

ありがとうございました。

参考

asdf-vm.com

blog.dalt.me

www.wakuwakubank.com

zenn.dev

zenn.dev



最近は ChatGPT や NotionAI に首ったけです。