Flutter Sürüm Yönetimi (FVM): Açıklaması

Bu kapsamlı rehber, FVM'yi kurulumdan gelişmiş kullanıma kadar her şeyi anlatacak.

Efe Demir

Efe Demir

5 June 2025

Flutter Sürüm Yönetimi (FVM): Açıklaması

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:

  1. Hepsi Bir Arada Platform: Tek bir araçta API dokümantasyonu, tasarım, hata ayıklama, otomatik test ve sahtekarlık
  2. Sezgisel Arayüz: Güçlü yeteneklere sahip kullanıcı dostu tasarım
  3. 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

button

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:

  1. 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.
  2. 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.
  3. 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.
  4. Çoklu Proje Desteği: Sürüm çakışmaları olmadan aynı anda çeşitli projeler üzerinde çalışın.
  5. 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

  1. Diller & Çerçeveler > Flutter'a gidin
  2. Flutter SDK yolunu FVM sembolik bağlantınızın mutlak yolu olarak değiştirin (örneğin, /mutlak-proje-yolu/.fvm/flutter_sdk)
  3. 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:

  1. FVM'yi yükleyin
  2. fvm install komutunu çalıştırın
  3. 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

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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:

  1. Flutter SDK yolunun IDE ayarlarınızda doğru şekilde ayarlandığından emin olun
  2. Yapılandırma değişikliklerinden sonra IDE'nizi yeniden başlatın
  3. 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:

  1. Unix tabanlı sistemlerde, sudo fvm <command> komutunu deneyin
  2. FVM önbellek dizini için klasör izinlerini kontrol edin

Yol Sorunları

FVM kullandıktan sonra Flutter komutları bulunamazsa:

  1. Flutter SDK yolunun sistem PATH'inizde olduğundan emin olun
  2. 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ı!

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin