Flutist: Ich habe ein Verwaltungs-Framework für Flutter Modular Architecture entwickelt! (feat. Tuist)
(flutist-1pn8eqs9s-seonwookes-projects.vercel.app)Wenn ein Flutter-Projekt größer wird, entscheidet man sich häufig für Modularisierung (Aufteilung in Pakete), um Build-Performance und Schichtentkopplung zu verbessern. Mit zunehmender Anzahl an Modulen steigt jedoch der Aufwand, Dutzende von pubspec.yaml-Dateien zu verwalten, und allein durch Code-Reviews lassen sich Architekturregeln nur schwer durchsetzen.
Flutist ist ein Framework, das von Tuist unter iOS inspiriert wurde und dafür entwickelt ist, Projektspezifikationen und Regeln als Code auf Basis von pub workspaces in Dart 3.6+ zu deklarieren und zu verwalten.
„Warum Flutist?“
-
Deklarative Projektkonfiguration
Statt diepubspec.yamljedes Moduls direkt zu bearbeiten, werden Paketversionen inpackage.dartund der Abhängigkeitsgraph zwischen Modulen inproject.dartdeklariert. Mit einer einzigen Definition werden diepubspec.yamlaller Module über den Befehlflutist generatesynchronisiert. -
Automatische Durchsetzung von Architekturregeln
In einer Clean Architecture verhindertpubnicht, dassdomaindirekt aufdataverweist oder zirkuläre Abhängigkeiten entstehen. Flutist kann dies durch Aktivieren vonstrictModeerzwingen und gibt bei Verstößen währendgenerateeinen Fehler aus. Prinzipien, die bisher nur in Dokumentation oder Code-Reviews standen, werden so zu ausführbaren Regeln. -
Typsicherheit und Produktivität
Anstelle stringbasierter Paketverweise unterstützt Flutist IDE-Autovervollständigung und Compile-Time-Typprüfung über automatisch generierte Accessors. Außerdem bietet es Scaffolding-Funktionen zur Erzeugung wiederkehrender Layer-Strukturen und Boilerplate, um die anfänglichen Einrichtungskosten zu minimieren. -
Optimierte Developer Experience
Neben paralleler oder einzelner Testausführung pro Modul lassen sich mitflutist graphkomplex verschachtelte Modulabhängigkeiten sofort visuell im Browser prüfen.
Vier unterstützte Modultypen
clean— Clean Architecture mit 3 Schichten (domain / data / presentation)micro— Microfeature mit 5 Schichten (interface / implementation / testing / tests / example)lite— 4 Schichten, beimicroohneexamplesimple— einzelnes Paket (für Utilities, gemeinsame Modelle oder App-Shells)
CLI-Befehle
flutist init/create/generate/check/pub/scaffold/test/graphflutist checkprüft nur die Architektur, ohne Dateien zu erzeugen → für CI-Pipelines- Mit
flutist graph --openlässt sich der Mermaid-Abhängigkeitsgraph direkt im Browser ansehen
Links
- Docs: https://flutist-web.vercel.app/docs
- pub.dev: https://pub.dev/packages/flutist
- GitHub: https://github.com/seonwooke/flutist
Wenn Sie sich mit einer Flutter-Multi-Modul-Architektur beschäftigen, kann ich die Einführung von Flutist empfehlen. Ich freue mich über Feedback und werde es aktiv berücksichtigen. Vielen Dank 🙏
Noch keine Kommentare.