1 puan yazan seonwookkim 2026-04-23 | Henüz yorum yok. | WhatsApp'ta paylaş

Flutter projelerinin ölçeği büyüdükçe, build performansı ve katman izolasyonu için modülerleşme (paketleri ayırma) tercih edilir. Ancak modül sayısı arttıkça onlarca pubspec.yaml dosyasını yönetmenin maliyeti yükselir ve yalnızca kod incelemesiyle mimari kuralları zorunlu kılmak zorlaşır.

Flutist, iOS'taki Tuist'ten ilham alarak Dart 3.6+ pub workspaces üzerinde proje tanımlarını ve kurallarını kodla bildirebilmek ve yönetebilmek için tasarlanmış bir framework'tür.

"Neden Flutist?"

  1. Bildirimsel proje yapılandırması
    Her modülün pubspec.yaml dosyasını doğrudan düzenlemek yerine, paket sürümlerini package.dart içinde, modüller arası bağımlılık grafiğini ise project.dart içinde tanımlarsınız. Tek bir tanımla tüm modüllerin pubspec.yaml dosyaları flutist generate komutuyla senkronize edilir.

  2. Mimari kuralların otomatik olarak zorunlu kılınması
    Clean Architecture'da domain katmanının data katmanına doğrudan başvurması veya döngüsel bağımlılık oluşması durumunu pub engellemez. Flutist, strictMode etkinleştirildiğinde bu kurallar ihlal edilirse generate sırasında hata verir. Böylece yalnızca dokümanlarda/kod incelemelerinde yer alan ilkeler çalıştırılabilir kurallara dönüşür.

  3. Tip güvenliği ve üretkenlik
    String tabanlı paket referansları yerine, otomatik oluşturulan erişimciler sayesinde IDE otomatik tamamlama ve derleme zamanı tip denetimi desteklenir. Ayrıca tekrarlayan katman yapıları veya boilerplate üretimi için scaffolding özelliği sunarak başlangıç kurulum maliyetini en aza indirir.

  4. Geliştirici deneyiminin optimize edilmesi
    Modül bazında paralel/ayrı test çalıştırmanın yanı sıra, flutist graph ile karmaşık şekilde birbirine bağlı modül bağımlılıklarını tarayıcıda görsel olarak anında inceleyebilirsiniz.

Desteklenen 4 modül tipi

  • clean — Clean Architecture 3 katman (domain / data / presentation)
  • micro — Microfeature 5 katman (interface / implementation / testing / tests / example)
  • litemicrodan example çıkarılmış 4 katman
  • simple — tek paket (utility, paylaşılan model, app shell için)

CLI komutları

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist check, dosya oluşturmadan yalnızca mimariyi denetler → CI pipeline'ları için
  • flutist graph --open ile mermaid bağımlılık grafiğini doğrudan tarayıcıda görüntüleyin

Bağlantılar

Flutter çok modüllü mimarisi üzerine düşünenler için flutist'i öneririm. Geri bildirim paylaşırsanız aktif şekilde yansıtmaya çalışacağım! Teşekkürler🙏

Henüz yorum yok.

Henüz yorum yok.