Flutist: Saya membuat framework pengelolaan Flutter Modular Architecture! (feat. Tuist)
(flutist-1pn8eqs9s-seonwookes-projects.vercel.app)Saat skala proyek Flutter membesar, modularisasi (pemisahan paket) sering dipilih demi performa build dan isolasi layer. Namun, semakin banyak jumlah modul, semakin besar pula sumber daya yang dibutuhkan untuk mengelola puluhan pubspec.yaml, dan sulit memaksakan aturan arsitektur hanya lewat code review.
Flutist adalah framework yang dirancang dengan inspirasi dari Tuist di iOS, agar spesifikasi dan aturan proyek dapat dideklarasikan serta dikelola sebagai kode di atas pub workspaces Dart 3.6+.
"Mengapa Flutist?"
-
Konfigurasi proyek deklaratif
Alih-alih mengeditpubspec.yamltiap modul secara langsung, versi paket dideklarasikan dipackage.dart, dan graf dependensi antarmodul dideklarasikan diproject.dart. Dengan satu definisi,pubspec.yamlsemua modul akan disinkronkan melalui perintahflutist generate. -
Penegakan otomatis aturan arsitektur
Dalam Clean Architecture, meskipundomainlangsung mereferensikandataatau muncul dependensi siklik,pubtidak akan mencegahnya. Flutist dapat mengaktifkanstrictMode, dan jika aturan ini dilanggar, error akan ditampilkan saatgenerate. Prinsip yang tadinya hanya ada di dokumen/code review menjadi aturan yang bisa dieksekusi. -
Keamanan tipe dan produktivitas
Alih-alih referensi paket berbasis string, Flutist mendukung auto-complete IDE dan pemeriksaan tipe saat compile time melalui accessor yang dibuat otomatis. Selain itu, tersedia fitur scaffolding untuk membuat struktur layer berulang atau boilerplate, sehingga biaya setup awal bisa diminimalkan. -
Optimasi pengalaman pengembangan
Selain menjalankan test paralel/per modul, Anda juga bisa langsung memeriksa dependensi modul yang rumit secara visual di browser melaluiflutist graph.
4 tipe modul yang didukung
clean— Clean Architecture 3-layer (domain/data/presentation)micro— Microfeature 5-layer (interface/implementation/testing/tests/example)lite— 4-layer, yaitumicrotanpaexamplesimple— paket tunggal (untuk utilitas, model bersama, atau app shell)
Perintah CLI
flutist init/create/generate/check/pub/scaffold/test/graphflutist checkmemeriksa arsitektur tanpa membuat file → untuk pipeline CI- Dengan
flutist graph --open, Anda bisa langsung melihat graf dependensi Mermaid di browser
Tautan
- Docs: https://flutist-web.vercel.app/docs
- pub.dev: https://pub.dev/packages/flutist
- GitHub: https://github.com/seonwooke/flutist
Bagi Anda yang sedang mempertimbangkan arsitektur multi-modul Flutter, saya merekomendasikan untuk mencoba flutist. Jika Anda memberi masukan, saya akan berusaha menanggapinya secara aktif! Terima kasih🙏
Belum ada komentar.