Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Flutterバージョン管理 (FVM): 解説

中村 拓也

中村 拓也

Updated on 4月 5, 2025

Flutterバージョン管理 (FVM) は、Flutter開発者にとって不可欠なツールであり、さまざまなプロジェクト間で複数のFlutter SDKバージョンを管理するプロセスを効率化します。Flutterは頻繁にアップデートされるため、堅牢なバージョン管理システムがプロジェクトの安定性を維持するためには重要です。この包括的なガイドでは、FVMに関する知識をインストールから高度な使用シナリオまで紹介します。

Flutterアプリケーションを開発する際、APIをテストしたり相互作用したりする必要があります。ApiDogは、API開発とテストに必要な機能を包括的に提供するPostmanの優れた代替手段です。

なぜApiDogを考慮する必要があるのか?

ApiDogは、APIテストをより効率的にする機能を備えたストリームライン化された体験を提供します:

  1. オールインワンプラットフォーム:APIドキュメント、設計、デバッグ、自動テスト、モックを1つのツールで提供
  2. 直感的なインターフェース:ユーザーフレンドリーなデザインと強力な機能
  3. 組み込みモックサーバー:コードを記述せずにモックAPIを作成

4. コラボレーション機能:リアルタイムのチームコラボレーションと同期された更新

5. OpenAPIサポート:OpenAPI仕様をシームレスにインポートおよびエクスポート

6. 自動生成ドキュメント:美しくインタラクティブなAPIドキュメントを自動で作成

7. 高度なテスト機能:強力なスクリプティングを使用して複雑なテストシナリオを作成

ボタン

Flutterバージョン管理が必要な理由

技術的な詳細に入る前に、FVMがFlutter開発者にとって重要な理由を理解しましょう:

  1. プロジェクト固有のFlutterバージョン:異なるプロジェクトは、パッケージの互換性やクライアントの要件に基づいて異なるFlutter SDKバージョンを必要とする場合があります。
  2. チームの一貫性:全チームメンバーが同じFlutterバージョンを使用し、「私のマシンでは動く」という問題を排除します。
  3. 簡単なSDK切り替え:時間のかかる再インストールなしで、安定版、ベータ版、または開発版のチャンネルを迅速に切り替えることができます。
  4. 複数のプロジェクトサポート:バージョン競合なしで、さまざまなプロジェクトを同時に進められます。
  5. 新しいリリースのテスト:安定した本番プロジェクトに影響を与えることなく、安全に新しいFlutterバージョンを試すことができます。

インストール

まず、システムにFVMをインストールしましょう。インストールプロセスは、オペレーティングシステムによって若干異なります:

macOSの場合:

Homebrewを使用:

brew tap leoafarias/fvm
brew install fvm

インストールスクリプトを使用:

curl -fsSL https://fvm.app/install.sh | bash

Windowsの場合:

Chocolateyを使用:

choco install fvm

または、FVM GitHubリポジトリからスタンドアロンパッケージをダウンロードします。

Linuxの場合:

インストールスクリプトを使用:

curl -fsSL https://fvm.app/install.sh | bash

グローバルアクティベーション

FVMをインストールした後、グローバルにアクティベートします:

dart pub global activate fvm

基本的なFVMコマンドと使用法

FVMをインストールしたので、Flutter SDKバージョンを管理するための基本的なコマンドを探ってみましょう。

Flutterバージョンのインストール

特定のFlutterバージョンをインストールするには:

fvm install 3.16.0

特定のチャンネルをインストールすることもできます:

fvm install stable
fvm install beta
fvm install dev

上級ユーザーは、gitコミットハッシュを使用して特定のコミットをインストールすることもできます:

fvm install fa345b1  # 短いハッシュ
fvm install 476ad8a917e64e345f05e4147e573e2a42b379f9  # 長いハッシュ

プロジェクトの Flutter バージョンを設定する

プロジェクトの特定のFlutterバージョンを設定するには、プロジェクトディレクトリに移動して実行します:

fvm use 3.16.0

このコマンドは、プロジェクト内に.fvmフォルダーを作成し、指定されたFlutter SDKへのシンボリックリンクを設定します。

特定のチャンネルから最新バージョンを使用するには:

fvm use stable

チャンネルを現在のバージョンに固定したい場合(自動更新を防ぐ):

fvm use stable --pin

インストールされたバージョンの一覧表示

FVMを介してインストールしたすべてのFlutterバージョンを表示するには:

fvm list

あるいは、ショートハンドを使用することができます:

fvm ls

利用可能なFlutterリリースの表示

利用可能なすべてのFlutter SDKリリースを表示するには:

fvm releases

チャンネルでリリースをフィルタリングするには:

fvm releases --channel beta

Flutterバージョンの削除

特定のFlutterバージョンがもはや必要ない場合:

fvm remove 3.16.0

グローバルFlutterバージョンの設定

システム全体で使用するためのグローバルFlutterバージョンを設定するには:

fvm global 3.16.0

グローバルバージョンのリンクを解除するには:

fvm global --unlink

プロジェクトの構成

プロジェクトのためにFVMを設定した後、FVMによって管理されているFlutter SDKを使用するように開発環境を構成する必要があります。

.gitignoreの更新

FVMは、選択したFlutterバージョンのキャッシュを指すシンボリックリンクを.fvm/flutter_sdkに作成します。これを.gitignoreに追加します:

.fvm/flutter_sdk

IDEの構成

VS Code

以下の内容でプロジェクト内の.vscode/settings.jsonを作成または更新します:

{
  "dart.flutterSdkPath": ".fvm/flutter_sdk",
  // 検索から.fvmファイルを除外
  "search.exclude": {
    "**/.fvm": true
  },
  // ファイル監視から除外
  "files.watcherExclude": {
    "**/.fvm": true
  }
}

Android Studio

  1. Languages & Frameworks > Flutterに移動します。
  2. Flutter SDKのパスをFVMのシンボリックリンクの絶対パスに変更します(例:/absolute-project-path/.fvm/flutter_sdk)。
  3. 変更を適用してAndroid Studioを再起動します。

Android Studio内でFlutter SDKのルートディレクトリを無視するには、.idea/workspace.xmlにこれを追加します:

<component name="VcsManagerConfiguration">
  <ignored-roots>
    <path value="$PROJECT_DIR$/.fvm/flutter_sdk" />
  </ignored-roots>
</component>

XCode

iOSで作業している場合、Xcodeを開き、Build phasesに移動し、Run scriptにこれを追加します:

export FLUTTER_ROOT="$PROJECT_DIR/../.fvm/flutter_sdk"

高度なFVM機能

プロジェクトフレーバー

FVMはプロジェクトフレーバーをサポートしており、アプリケーションの異なる部分が異なるFlutter SDKバージョンを使用できるようにします:

fvm use 3.16.0 --flavor production
fvm use 3.10.0 --flavor development

フレーバー間を切り替えるには:

fvm use production
fvm use development

特定のフレーバーでFlutterコマンドを実行するには:

fvm flavor production flutter build

特定のバージョンでFlutterコマンドを実行する

spawnコマンドを使用すると、特定のSDKバージョンでFlutterコマンドを実行できます:

fvm spawn 3.16.0 flutter build
fvm spawn 3.10.0 flutter test

プロジェクトのFlutterバージョンでコマンドを実行する

execコマンドは、プロジェクトで設定されたFlutterバージョンを使用してコマンドやスクリプトを実行します:

fvm exec melos bootstrap
fvm exec path/to/script.sh

CI/CD環境でのFVMの使用

継続的インテグレーションのために、ワークフローにこれらの手順を追加します:

  1. FVMをインストールします。
  2. fvm installを実行します。
  3. Flutterコマンドを実行するためにfvm flutter <command>を使用します。

GitHub Actionsの例:

steps:
  - uses: actions/checkout@v3
  - name: Install FVM
    run: |
      dart pub global activate fvm
      fvm install
  - name: Build and Test
    run: |
      fvm flutter pub get
      fvm flutter test

FVM使用のベストプラクティス

  1. Flutterコマンドには常にFVMを使用する - 一貫性を確保するために、FVMを介してFlutterコマンドを実行します(例:fvm flutter pub get)。
  2. プロジェクトドキュメントにFVMバージョンを含める - 新しいチームメンバーを助けるために、READMEに必要なFlutterバージョンを文書化します。
  3. CI/CDでFlutterバージョンをロックする - 継続的インテグレーションパイプラインが開発環境と同じFlutterバージョンを使用することを確認します。
  4. 安定性のために--pinを使用することを検討する - 'stable'のようなチャンネルを使用する場合、自動更新を避けるために固定を検討します。
  5. 定期的なキャッシュクリーニング - 未使用のFlutterバージョンをfvm removeで定期的に削除し、ディスクスペースを節約します。

一般的な問題のトラブルシューティング

FVMバージョンが認識されない

IDEがFVMによって設定されたFlutterバージョンを認識しない場合:

  1. IDE設定でFlutter SDKパスが正しく設定されていることを確認します。
  2. 設定変更後にIDEを再起動します。
  3. シンボリックリンクが正しく作成されていることを確認するためにls -la .fvm/flutter_sdkを実行します。

権限の問題

権限エラーが発生した場合:

  1. Unix系システムでは、sudo fvm <command>を試みてください。
  2. FVMキャッシュディレクトリのフォルダ権限を確認します。

パスの問題

FVM使用後にFlutterコマンドが見つからない場合:

  1. Flutter SDKパスがシステムのPATHに含まれていることを確認します。
  2. スクリプト内でFlutter SDKの絶対パスを使用します。

結論

Flutterバージョン管理 (FVM) は、現代のFlutter開発に不可欠なツールです。さまざまなプロジェクト間でFlutter SDKバージョンを正確に制御することを可能にし、互換性の問題を排除し、開発チーム全体の一貫性を確保します。

インストールの基本から始め、高度なプロジェクトフレーバーなどの機能に進む本ガイドでは、FVMを効果的に利用するための重要な側面をカバーしました。FVMをFlutter開発ワークフローに組み込むことで、生産性を向上させ、プロジェクトの安定性を維持し、チームメンバーとシームレスにコラボレーションできます。

バージョンの一貫性を確保し、予期しない動作を避けるために、Flutterコマンドは常にFVMを介して実行することを忘れないでください。適切なFVMの使用によって、異なるSDK要件を持つ複数のFlutterプロジェクトで自信を持って作業し、新しいFlutterバージョンを本番コードに影響を与えずに試すことができます。

FVMを使ったFlutterコーディングを楽しんでください!