Flutist: Flutter Modular Architecture yönetim framework'ü geliştirdim! (feat. Tuist)
(flutist-1pn8eqs9s-seonwookes-projects.vercel.app)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?"
-
Bildirimsel proje yapılandırması
Her modülünpubspec.yamldosyasını doğrudan düzenlemek yerine, paket sürümlerinipackage.dartiçinde, modüller arası bağımlılık grafiğini iseproject.dartiçinde tanımlarsınız. Tek bir tanımla tüm modüllerinpubspec.yamldosyalarıflutist generatekomutuyla senkronize edilir. -
Mimari kuralların otomatik olarak zorunlu kılınması
Clean Architecture'dadomainkatmanınındatakatmanına doğrudan başvurması veya döngüsel bağımlılık oluşması durumunupubengellemez. Flutist,strictModeetkinleştirildiğinde bu kurallar ihlal edilirsegeneratesırasında hata verir. Böylece yalnızca dokümanlarda/kod incelemelerinde yer alan ilkeler çalıştırılabilir kurallara dönüşür. -
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. -
Geliştirici deneyiminin optimize edilmesi
Modül bazında paralel/ayrı test çalıştırmanın yanı sıra,flutist graphile 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)lite—microdanexampleçıkarılmış 4 katmansimple— tek paket (utility, paylaşılan model, app shell için)
CLI komutları
flutist init/create/generate/check/pub/scaffold/test/graphflutist check, dosya oluşturmadan yalnızca mimariyi denetler → CI pipeline'ları içinflutist graph --openile mermaid bağımlılık grafiğini doğrudan tarayıcıda görüntüleyin
Bağlantılar
- Docs: https://flutist-web.vercel.app/docs
- pub.dev: https://pub.dev/packages/flutist
- GitHub: https://github.com/seonwooke/flutist
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.