Flutter Version Management (FVM), farklı projelerde birden fazla Flutter SDK sürümünü yönetme sürecini kolaylaştıran, Flutter geliştiricileri için temel bir araçtır. Flutter, sık güncellemelerle hızla geliştiğinden, proje istikrarını korumak için sağlam bir sürüm yönetim sistemine sahip olmak çok önemlidir. Bu kapsamlı kılavuz, kurulumdan gelişmiş kullanım senaryolarına kadar FVM hakkında bilmeniz gereken her şeyi size anlatacaktır.
Flutter uygulamaları geliştirirken, genellikle API'leri test etmeniz ve onlarla etkileşim kurmanız gerekir. Apidog, API geliştirme ve test için kapsamlı bir özellik seti sunan, Postman'e mükemmel bir alternatiftir.
Neden Apidog'u Düşünmelisiniz?
Apidog, API testini daha verimli hale getiren özelliklerle kolaylaştırılmış bir deneyim sunar:
- Hepsi Bir Arada Platform: Tek bir araçta API dokümantasyonu, tasarım, hata ayıklama, otomatik test ve sahtekarlık
- Sezgisel Arayüz: Güçlü yeteneklere sahip kullanıcı dostu tasarım
- Yerleşik Sahte Sunucu: Hiçbir kod yazmadan sahte API'ler oluşturun

4. İşbirliği Özellikleri: Senkronize güncellemelerle gerçek zamanlı ekip işbirliği
5. OpenAPI Desteği: OpenAPI spesifikasyonlarını sorunsuz bir şekilde içe ve dışa aktarın
6. Otomatik Oluşturulan Dokümantasyon: Otomatik olarak güzel, etkileşimli API belgeleri oluşturun

7. Gelişmiş Test Yeteneği: Güçlü komut dosyası oluşturma ile karmaşık test senaryoları oluşturun
Neden Flutter Sürüm Yönetimine İhtiyacınız Var?
Teknik detaylara girmeden önce, FVM'nin Flutter geliştiricileri için neden önemli olduğunu anlayalım:
- Projeye Özel Flutter Sürümleri: Farklı projeler, paket uyumluluğuna veya müşteri gereksinimlerine bağlı olarak farklı Flutter SDK sürümleri gerektirebilir.
- Ekip Tutarlılığı: Tüm ekip üyelerinin aynı Flutter sürümünü kullanmasını sağlayarak "benim makinemde çalışıyor" sorunlarını ortadan kaldırır.
- Kolay SDK Değiştirme: Zaman alan yeniden yüklemeler olmadan kararlı, beta veya geliştirme kanalları arasında hızlıca geçiş yapın.
- Çoklu Proje Desteği: Sürüm çakışmaları olmadan aynı anda çeşitli projeler üzerinde çalışın.
- Yeni Sürümleri Test Etme: Kararlı üretim projelerinizi etkilemeden yeni Flutter sürümlerini güvenle deneyin.
Kurulum
FVM'yi sisteminize kurarak başlayalım. Kurulum süreci, işletim sisteminize bağlı olarak biraz farklılık gösterir:
macOS için:
Homebrew'i Kullanarak:
brew tap leoafarias/fvm
brew install fvm
Kurulum betiğini kullanarak:
curl -fsSL https://fvm.app/install.sh | bash
Windows için:
Chocolatey'i Kullanarak:
choco install fvm
Veya bağımsız paketi FVM GitHub deposundan indirin.
Linux için:
Kurulum betiğini kullanarak:
curl -fsSL https://fvm.app/install.sh | bash
Global Aktivasyon
FVM'yi kurduktan sonra, global olarak etkinleştirin:
dart pub global activate fvm
Temel FVM Komutları ve Kullanımı
FVM'yi kurduğunuza göre, Flutter SDK sürümlerini yönetmek için gerekli komutları inceleyelim.
Flutter Sürümlerini Yükleme
Belirli bir Flutter sürümünü yüklemek için:
fvm install 3.16.0
Ayrıca belirli bir kanal da yükleyebilirsiniz:
fvm install stable
fvm install beta
fvm install dev
Gelişmiş kullanıcılar için, git commit hash'ini kullanarak belirli bir commit'i bile yükleyebilirsiniz:
fvm install fa345b1 # Kısa hash
fvm install 476ad8a917e64e345f05e4147e573e2a42b379f9 # Uzun hash
Projeniz İçin Bir Flutter Sürümü Ayarlama
Projeniz için belirli bir Flutter sürümü ayarlamak için, proje dizininize gidin ve şunu çalıştırın:
fvm use 3.16.0
Bu komut, projenizde bir .fvm
klasörü oluşturur ve belirtilen Flutter SDK'sına sembolik bir bağlantı kurar.
Belirli bir kanaldan en son sürümü kullanmak için:
fvm use stable
Kanala geçerli sürümünü sabitlemek isterseniz (otomatik güncellemeleri engelleme):
fvm use stable --pin
Yüklü Sürümleri Listeleme
FVM aracılığıyla yüklediğiniz tüm Flutter sürümlerini görmek için:
fvm list
Alternatif olarak, kısaltmayı kullanabilirsiniz:
fvm ls
Mevcut Flutter Sürümlerini Görüntüleme
Mevcut tüm Flutter SDK sürümlerini görüntülemek için:
fvm releases
Sürümleri kanala göre filtrelemek için:
fvm releases --channel beta
Bir Flutter Sürümünü Kaldırma
Belirli bir Flutter sürümüne artık ihtiyacınız olmadığında:
fvm remove 3.16.0
Global Bir Flutter Sürümü Ayarlama
Sisteminizde kullanmak üzere global bir Flutter sürümü ayarlamak için:
fvm global 3.16.0
Global sürümün bağlantısını kaldırmak için:
fvm global --unlink
Proje Yapılandırması
Projeniz için FVM'yi ayarladıktan sonra, FVM tarafından yönetilen Flutter SDK'sını kullanmak üzere geliştirme ortamınızı yapılandırmanız gerekir.
.gitignore'u Güncelleme
FVM, seçtiğiniz Flutter sürümünün önbelleğine işaret eden .fvm/flutter_sdk
adresinde sembolik bir bağlantı oluşturur. Bunu .gitignore
dosyanıza ekleyin:
.fvm/flutter_sdk
IDE Yapılandırmaları
VS Code
Projenizde .vscode/settings.json
dosyasını oluşturun veya güncelleyin:
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
// Aramadan .fvm dosyalarını kaldır
"search.exclude": {
"**/.fvm": true
},
// Dosya izlemeden kaldır
"files.watcherExclude": {
"**/.fvm": true
}
}
Android Studio
- Diller & Çerçeveler > Flutter'a gidin
- Flutter SDK yolunu FVM sembolik bağlantınızın mutlak yolu olarak değiştirin (örneğin,
/mutlak-proje-yolu/.fvm/flutter_sdk
) - Değişiklikleri uygulayın ve Android Studio'yu yeniden başlatın
Android Studio içindeki Flutter SDK kök dizinini yoksaymak için, bunu .idea/workspace.xml
dosyasına ekleyin:
<component name="VcsManagerConfiguration">
<ignored-roots>
<path value="$PROJECT_DIR$/.fvm/flutter_sdk" />
</ignored-roots>
</component>
XCode
iOS üzerinde çalışıyorsanız, Xcode'u açın, Build phases'e gidin ve Run script'e şunu ekleyin:
export FLUTTER_ROOT="$PROJECT_DIR/../.fvm/flutter_sdk"
Gelişmiş FVM Özellikleri
Proje Tatları
FVM, uygulamanızın farklı bölümlerinin farklı Flutter SDK sürümleri kullanmasına izin veren proje tatlarını destekler:
fvm use 3.16.0 --flavor production
fvm use 3.10.0 --flavor development
Tatlar arasında geçiş yapmak için:
fvm use production
fvm use development
Belirli bir tat ile bir Flutter komutu çalıştırmak için:
fvm flavor production flutter build
Belirli Sürümlerle Flutter Komutlarını Yürütme
spawn
komutu, Flutter komutlarını belirli bir SDK sürümüyle çalıştırmanıza olanak tanır:
fvm spawn 3.16.0 flutter build
fvm spawn 3.10.0 flutter test
Projenin Flutter Sürümüyle Komutları Çalıştırma
exec
komutu, projenin yapılandırılmış Flutter sürümünü kullanarak komutları veya betikleri yürütür:
fvm exec melos bootstrap
fvm exec path/to/script.sh
CI/CD Ortamlarında FVM ile Çalışmak
Sürekli entegrasyon için, iş akışınıza şu adımları ekleyin:
- FVM'yi yükleyin
fvm install
komutunu çalıştırın- Flutter komutlarını çalıştırmak için
fvm flutter <command>
kullanın
GitHub Actions için örnek:
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 Kullanımı İçin En İyi Uygulamalar
- Flutter komutları için her zaman FVM kullanın - Tutarlılığı sağlamak için Flutter komutlarını FVM aracılığıyla çalıştırın (örneğin,
fvm flutter pub get
). - Proje dokümantasyonuna FVM sürümünü dahil edin - Yeni ekip üyelerine yardımcı olmak için README dosyanızda gerekli Flutter sürümünü belgeleyin.
- CI/CD'de Flutter sürümünü kilitleyin - Sürekli entegrasyon boru hattınızın, geliştirme ortamınızla aynı Flutter sürümünü kullandığından emin olun.
- Kararlılık için
--pin
kullanmayı düşünün - 'kararlı' gibi bir kanal kullanırken, otomatik güncellemeleri önlemek için onu sabitlemeyi düşünün. - Düzenli önbellek temizleme - Disk alanından tasarruf etmek için kullanılmayan Flutter sürümlerini periyodik olarak
fvm remove
ile kaldırın.
Yaygın Sorunları Giderme
FVM Sürümü Tanınmıyor
IDE'niz FVM tarafından ayarlanan Flutter sürümünü tanımıyorsa:
- Flutter SDK yolunun IDE ayarlarınızda doğru şekilde ayarlandığından emin olun
- Yapılandırma değişikliklerinden sonra IDE'nizi yeniden başlatın
- Sembolik bağlantının
ls -la .fvm/flutter_sdk
ile doğru şekilde oluşturulduğunu doğrulayın
İzin Sorunları
İzin hatalarıyla karşılaşırsanız:
- Unix tabanlı sistemlerde,
sudo fvm <command>
komutunu deneyin - FVM önbellek dizini için klasör izinlerini kontrol edin
Yol Sorunları
FVM kullandıktan sonra Flutter komutları bulunamazsa:
- Flutter SDK yolunun sistem PATH'inizde olduğundan emin olun
- Betiklerinizde Flutter SDK'sına mutlak yollar kullanın
Sonuç
Flutter Version Management (FVM), modern Flutter geliştirme için vazgeçilmez bir araçtır. Farklı projelerde Flutter SDK sürümleri üzerinde hassas kontrol sağlayarak, uyumluluk sorunlarını ortadan kaldırır ve geliştirme ekipleri arasında tutarlılık sağlar.
Kurulumun temellerinden başlayıp proje tatları gibi gelişmiş özelliklere kadar ilerleyen bu kılavuz, FVM'yi etkili bir şekilde kullanmanın temel yönlerini ele almıştır. FVM'yi Flutter geliştirme iş akışınıza dahil ederek, üretkenliği artırabilir, proje istikrarını koruyabilir ve ekip üyeleriyle sorunsuz bir şekilde işbirliği yapabilirsiniz.
Sürüm tutarlılığını sağlamak ve beklenmedik davranışlardan kaçınmak için her zaman Flutter komutlarını FVM aracılığıyla çalıştırdığınızdan emin olun. Uygun FVM kullanımıyla, farklı SDK gereksinimlerine sahip birden fazla Flutter projesi üzerinde güvenle çalışabilir ve üretim kodunuzu etkilemeden yeni Flutter sürümlerini kolayca deneyebilirsiniz.
FVM ile mutlu Flutter kodlamaları!