Kelola Multi Versi Flutter dengan FVM

Kelola Multi Versi Flutter dengan FVM


FVM (Flutter Version Management) memecahkan masalah klasik: proyek A butuh Flutter 3.x, proyek B masih 2.x, sementara tim dan CI perlu konsisten. FVM memungkinkan setiap proyek “terkunci” pada versi Flutter tertentu tanpa mengganggu global install.

Apa manfaatnya?

  • Versi per proyek (isolasi): tidak saling bentrok.
  • Stabil di CI: versi terkunci, build reproducible.
  • Mudah pindah versi: fvm use <versi>.

1) Instalasi FVM

Prasyarat: Dart SDK tersedia (biasanya ikut Flutter). Pastikan path ke Dart/Flutter sudah aktif.

Metode via Dart Pub (lintas OS):

dart pub global activate fvm

Tambahkan global executables ke PATH:

macOS/Linux

echo 'export PATH="$HOME/.pub-cache/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Windows

Tambahkan ke Path (User env): %USERPROFILE%\AppData\Local\Pub\Cache\bin

Cek versi:

fvm --version

Catatan: Beberapa distro/OS juga menyediakan FVM via package manager (mis. Homebrew). Gunakan jika sesuai kebijakan tim.


2) Konsep Dasar & Alur Kerja

  • Instal versi Flutter tertentu:
fvm install stable         # atau: fvm install 3.24.0
fvm list                   # lihat versi yang tersedia/terpasang
  • Set versi di proyek (membuat folder .fvm/):
cd path/ke/proyek
fvm use stable             # kunci proyek ke kanal/versi ini
  • Jalankan perintah Flutter lewat FVM (per proyek):
fvm flutter doctor
fvm flutter pub get
fvm flutter run
  • Set versi global (opsional):
fvm global stable

Struktur proyek (ringkas):

  • .fvm/flutter_sdk → symlink/dir ke SDK versi yang dipilih
  • .fvm/fvm_config.json → metadata versi proyek

3) Integrasi Editor/IDE

VS Code

  • Install extension Dart & Flutter.
  • Di settings.json, atur SDK per proyek:
{
  "dart.flutterSdkPath": ".fvm/flutter_sdk"
}

Android Studio/IntelliJ

  • Preferences → Languages & Frameworks → Flutter → Flutter SDK path → arahkan ke .fvm/flutter_sdk di root proyek.

Keuntungan: Editor menggunakan versi yang sama dengan CLI proyek (reproducible).


4) Contoh GitHub Actions (CI)

Tujuan: pastikan CI memakai versi yang sama dengan proyek dan cache agar cepat.

Contoh potongan langkah (ringkas):

steps:
  - uses: actions/checkout@v4

  - name: Setup Java (untuk Android build)
    uses: actions/setup-java@v4
    with:
      distribution: temurin
      java-version: "17"

  - name: Install FVM
    run: |
      dart pub global activate fvm
      echo "${HOME}/.pub-cache/bin" >> $GITHUB_PATH

  - name: Install Flutter via FVM
    run: |
      fvm install
      fvm flutter --version

  - name: Dependencies
    run: fvm flutter pub get

  - name: Analyze & Test
    run: |
      fvm flutter analyze
      fvm flutter test

Tambahkan cache pub/Gradle agar lebih cepat sesuai kebutuhan workflow.


5) Troubleshooting

  • fvm: command not found
    • PATH ke .pub-cache/bin belum aktif. Reload terminal atau cek env.
  • Editor masih pakai Flutter global
    • Pastikan SDK path di editor menunjuk .fvm/flutter_sdk.
  • Versi tak ditemukan saat fvm install
    • Cek penulisan versi/kanal (stable, beta, atau angka versi lengkap).

Ringkasan

FVM memudahkan tim mengunci versi Flutter per proyek, memastikan konsistensi di mesin lokal dan CI. Gunakan fvm use, jalankan perintah via fvm flutter ..., dan arahkan IDE ke .fvm/flutter_sdk untuk pengalaman yang mulus.

💬 Komentar

Real-time

⏳ Memuat komentar...

Tulis Komentar

Email tidak akan ditampilkan

0/2000 karakter

⚠️ Catatan: Komentar akan dimoderasi sebelum ditampilkan. Mohon bersikap sopan dan konstruktif.