1 points par seonwookkim 2026-04-23 | Aucun commentaire pour le moment. | Partager sur WhatsApp

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

  1. Configuration déclarative du projet
    Au lieu de modifier directement le pubspec.yaml de chaque module, on déclare les versions de packages dans package.dart et le graphe de dépendances entre modules dans project.dart. Une seule définition suffit pour synchroniser tous les pubspec.yaml des modules avec la commande flutist generate.

  2. Application automatique des règles d’architecture
    Dans une Clean Architecture, même si domain référence directement data ou qu’une dépendance circulaire apparaît, pub ne l’empêche pas. Flutist peut activer strictMode et affiche une erreur lors de generate en cas de violation. Les principes qui n’existaient que dans la documentation ou la code review deviennent alors des règles exécutables.

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

  4. Optimisation de l’expérience développeur
    En plus de l’exécution parallèle ou individuelle des tests par module, flutist graph permet 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 de micro, sans example
  • simple — package unique (pour utilitaires, modèles partagés, shell d’application)

Commandes CLI

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist check vé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

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.

Aucun commentaire pour le moment.