Flutist : j’ai créé un framework de gestion d’architecture modulaire Flutter ! (feat. Tuist)
(flutist-1pn8eqs9s-seonwookes-projects.vercel.app)Quand un projet Flutter prend de l’ampleur, on choisit souvent la modularisation (séparation en packages) pour les performances de build et l’isolation des couches. Mais à mesure que le nombre de modules augmente, la charge de gestion de dizaines de pubspec.yaml s’alourdit, et il devient difficile de faire respecter les règles d’architecture par la seule code review.
Flutist est un framework conçu pour permettre de déclarer et de gérer en code les spécifications et règles d’un projet au-dessus des pub workspaces de Dart 3.6+, en s’inspirant de Tuist sur iOS.
« Pourquoi Flutist ? »
-
Configuration déclarative du projet
Au lieu de modifier directement lepubspec.yamlde chaque module, on déclare les versions de packages danspackage.dartet le graphe de dépendances entre modules dansproject.dart. Une seule définition suffit pour synchroniser tous lespubspec.yamldes modules avec la commandeflutist generate. -
Application automatique des règles d’architecture
Dans une Clean Architecture, même sidomainréférence directementdataou qu’une dépendance circulaire apparaît,pubne l’empêche pas. Flutist peut activerstrictModeet affiche une erreur lors degenerateen cas de violation. Les principes qui n’existaient que dans la documentation ou la code review deviennent alors des règles exécutables. -
Sûreté de typage et productivité
Au lieu de références de packages basées sur des chaînes, Flutist fournit des accesseurs générés automatiquement, avec auto-complétion IDE et vérification de type à la compilation. Il propose aussi des fonctions de scaffolding pour générer des structures de couches répétitives ou du boilerplate, afin de réduire au minimum le coût de configuration initial. -
Optimisation de l’expérience développeur
En plus de l’exécution parallèle ou individuelle des tests par module,flutist graphpermet de visualiser immédiatement dans le navigateur les dépendances complexes entre modules.
4 types de modules pris en charge
clean— Clean Architecture en 3 couches (domain/data/presentation)micro— Microfeature en 5 couches (interface/implementation/testing/tests/example)lite— version 4 couches demicro, sansexamplesimple— package unique (pour utilitaires, modèles partagés, shell d’application)
Commandes CLI
flutist init/create/generate/check/pub/scaffold/test/graphflutist checkvérifie uniquement l’architecture sans générer de fichiers → pour les pipelines CI- Avec
flutist graph --open, vous pouvez consulter directement dans le navigateur le graphe de dépendances Mermaid
Liens
- Docs: https://flutist-web.vercel.app/docs
- pub.dev: https://pub.dev/packages/flutist
- GitHub: https://github.com/seonwooke/flutist
Si vous réfléchissez à une architecture Flutter multi-modules, je vous recommande d’adopter Flutist. N’hésitez pas à me faire vos retours, je les intégrerai activement ! Merci 🙏
Aucun commentaire pour le moment.