1 Punkte von seonwookkim 2026-04-23 | Noch keine Kommentare. | Auf WhatsApp teilen

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?“

  1. Deklarative Projektkonfiguration
    Statt die pubspec.yaml jedes Moduls direkt zu bearbeiten, werden Paketversionen in package.dart und der Abhängigkeitsgraph zwischen Modulen in project.dart deklariert. Mit einer einzigen Definition werden die pubspec.yaml aller Module über den Befehl flutist generate synchronisiert.

  2. Automatische Durchsetzung von Architekturregeln
    In einer Clean Architecture verhindert pub nicht, dass domain direkt auf data verweist oder zirkuläre Abhängigkeiten entstehen. Flutist kann dies durch Aktivieren von strictMode erzwingen und gibt bei Verstößen während generate einen Fehler aus. Prinzipien, die bisher nur in Dokumentation oder Code-Reviews standen, werden so zu ausführbaren Regeln.

  3. 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.

  4. Optimierte Developer Experience
    Neben paralleler oder einzelner Testausführung pro Modul lassen sich mit flutist graph komplex 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, bei micro ohne example
  • simple — einzelnes Paket (für Utilities, gemeinsame Modelle oder App-Shells)

CLI-Befehle

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist check prüft nur die Architektur, ohne Dateien zu erzeugen → für CI-Pipelines
  • Mit flutist graph --open lässt sich der Mermaid-Abhängigkeitsgraph direkt im Browser ansehen

Links

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.

Noch keine Kommentare.