fvm
GitHub概要
leoafarias/fvm
Flutter Version Management: A simple CLI to manage Flutter SDK versions.
ホームページ:https://fvm.app
スター5,093
ウォッチ28
フォーク260
作成日:2019年2月22日
言語:Dart
ライセンス:MIT License
トピックス
clidartflutterflutter-releasesflutter-sdk-versionsfvmsdk
スター履歴
データ取得日時: 2025/7/20 03:50
言語バージョン管理ツール
fvm
概要
FVM(Flutter Version Management)は、Flutter SDKバージョンを管理するためのシンプルなCLIツールです。プロジェクトごとに異なるFlutter SDKを使用でき、チーム開発での環境一致や新機能のテストが容易になります。フラッターコミュニティで広く採用されており、開発効率の向上と「私の環境では動く」問題の解決に貢献します。バージョン固定による安定性とスムーズなSDK切り替えを実現します。
詳細
主な特徴
- プロジェクト別管理: .fvmディレクトリによるプロジェクトスコープのSDK管理
- チーム開発対応: 全メンバーが同一Flutter SDKを使用可能
- IDE統合: VS Code、Android Studio、IntelliJとの完全統合
- グローバル設定: システム全体のデフォルトFlutter SDK設定
- キャッシュシステム: ダウンロード済みSDKの効率的な再利用
- フレーバー対応: 環境別(dev、staging、prod)のSDK管理
- シンボリックリンク: 軽量な参照システムで容量節約
動作原理
FVMはFlutter SDKを~/.fvm/versionsディレクトリにキャッシュし、プロジェクトの.fvm/flutter_sdkシンボリックリンクで適切なバージョンを参照します。IDEはこのシンボリックリンクを通じてプロジェクト固有のSDKを使用します。
プロジェクト構造
project/
├── .fvm/
│ ├── flutter_sdk -> ~/.fvm/versions/3.16.5
│ └── fvm_config.json
├── lib/
├── pubspec.yaml
└── README.md
メリット・デメリット
メリット
- 環境統一: チーム全体で一貫したFlutter SDK使用
- 効率的切り替え: プロジェクト間のSDKバージョン瞬時切り替え
- 安定性確保: プロジェクトが特定SDKバージョンに固定
- 容量節約: 複数プロジェクトでSDKを共有
- CI/CD対応: 自動化環境での確実なバージョン指定
- 新機能テスト: beta、devチャンネルの安全なテスト
- IDE統合: コード補完やデバッグが適切なSDKで動作
デメリット
- 初期設定: プロジェクトごとの初期セットアップが必要
- ストレージ使用: 複数Flutter SDKのローカル保存が必要
- 学習コスト: Flutter開発者にとって追加の概念
- 依存関係: FVMツール自体への依存
- パス管理: IDE設定の適切な構成が必要
参考ページ
書き方の例
インストール
# スタンドアローンインストール(推奨)
# macOS/Linux
curl -fsSL https://fvm.app/install.sh | bash
# Homebrew(macOS)
brew tap leoafarias/fvm
brew install fvm
# Chocolatey(Windows)
choco install fvm
# Dart pub経由(非推奨)
dart pub global activate fvm
# インストール確認
fvm --version
基本的な使用方法
# 利用可能なFlutterバージョン確認
fvm releases
# 特定バージョンのインストール
fvm install 3.16.5
fvm install 3.19.0
# インストール済みバージョン確認
fvm list
# プロジェクトでのFlutterバージョン設定
cd my-flutter-project
fvm use 3.16.5
# .fvm/fvm_config.jsonが作成される
cat .fvm/fvm_config.json
プロジェクト管理
# 新しいFlutterプロジェクトの開始
mkdir my-app && cd my-app
# プロジェクト用Flutterバージョンの設定
fvm use 3.16.5
# FVM経由でFlutterコマンド実行
fvm flutter create .
fvm flutter pub get
fvm flutter run
# 依存関係更新
fvm flutter pub upgrade
# ビルド
fvm flutter build apk
fvm flutter build ios
IDE設定
VS Code設定
// .vscode/settings.json
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
"search.exclude": {
"**/.fvm": true
},
"files.watcherExclude": {
"**/.fvm": true
}
}
Android Studio/IntelliJ設定
# Flutter SDK pathの設定
# Languages & Frameworks > Flutter
# Flutter SDK path: /absolute/path/to/project/.fvm/flutter_sdk
# 絶対パスの確認
pwd && echo "/.fvm/flutter_sdk"
チーム開発での活用
# プロジェクトのクローン
git clone https://github.com/company/flutter-app.git
cd flutter-app
# .fvm設定からFlutterバージョンを自動インストール
fvm install
# または、設定ファイルから手動インストール
cat .fvm/fvm_config.json
fvm install 3.16.5
fvm use 3.16.5
# プロジェクトの開始
fvm flutter pub get
fvm flutter run
フレーバー管理
# 開発環境用設定
fvm flavor development --flutter-version 3.19.0
# ステージング環境用設定
fvm flavor staging --flutter-version 3.16.5
# 本番環境用設定
fvm flavor production --flutter-version 3.16.5
# フレーバー指定でコマンド実行
fvm flavor development flutter run
fvm flavor production flutter build apk
大規模プロジェクトでの管理
# 複数プロジェクトの管理
mkdir flutter-projects && cd flutter-projects
# プロジェクト1(最新stable)
mkdir project1 && cd project1
fvm use 3.19.0
fvm flutter create .
cd ..
# プロジェクト2(LTS版)
mkdir project2 && cd project2
fvm use 3.16.5
fvm flutter create .
cd ..
# プロジェクト3(beta版テスト)
mkdir project3 && cd project3
fvm install beta
fvm use beta
fvm flutter create .
CI/CD環境での使用
# GitHub Actions例
name: Flutter CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install FVM
run: |
curl -fsSL https://fvm.app/install.sh | bash
echo "$HOME/.fvm/default/bin" >> $GITHUB_PATH
- name: Install Flutter SDK
run: |
fvm install
fvm use $(fvm list | head -n1 | cut -d' ' -f1)
- name: Get dependencies
run: fvm flutter pub get
- name: Run tests
run: fvm flutter test
- name: Build APK
run: fvm flutter build apk
グローバル設定とメンテナンス
# グローバルFlutterバージョンの設定
fvm global 3.16.5
# システム全体でのFlutter使用
flutter --version # FVMで管理されたバージョンを使用
# 古いバージョンの削除
fvm remove 3.13.0
# キャッシュクリーンアップ
fvm doctor # 健全性チェック
# FVM設定の確認
fvm config
# 全体設定のリセット
fvm config --reset
高度な使用例
# カスタムキャッシュディレクトリ
export FVM_CACHE_PATH=/custom/path/fvm
fvm install 3.16.5
# プロキシ環境での使用
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
fvm install 3.16.5
# 並列インストール
fvm install 3.16.5 &
fvm install 3.19.0 &
wait
# バッチスクリプトでの自動化
#!/bin/bash
FLUTTER_PROJECTS=(
"project1:3.16.5"
"project2:3.19.0"
"project3:beta"
)
for project_info in "${FLUTTER_PROJECTS[@]}"; do
IFS=':' read -r project version <<< "$project_info"
cd "$project"
fvm use "$version"
fvm flutter pub get
cd ..
done
トラブルシューティング
# FVMの状態確認
fvm doctor
# 権限問題の解決
sudo chown -R $(whoami) ~/.fvm
# シンボリックリンクの修復
cd my-flutter-project
rm -rf .fvm
fvm use 3.16.5
# PATH環境変数の確認
echo $PATH | grep fvm
# FVMの完全再インストール
rm -rf ~/.fvm
curl -fsSL https://fvm.app/install.sh | bash