1 puntos por seonwookkim 2026-04-23 | Aún no hay comentarios. | Compartir por WhatsApp

Cuando un proyecto de Flutter crece en tamaño, suele optarse por la modularización (separación en paquetes) para mejorar el rendimiento de compilación y el aislamiento entre capas. Sin embargo, a medida que aumenta el número de módulos, también crece el esfuerzo necesario para gestionar decenas de pubspec.yaml, y se vuelve difícil hacer cumplir las reglas de arquitectura solo con revisiones de código.

Flutist es un framework diseñado, inspirado en Tuist de iOS, para declarar y gestionar como código la especificación y las reglas de un proyecto sobre pub workspaces de Dart 3.6+.

"¿Por qué Flutist?"

  1. Configuración declarativa del proyecto
    En lugar de modificar directamente el pubspec.yaml de cada módulo, se declaran las versiones de paquetes en package.dart y el grafo de dependencias entre módulos en project.dart. Con una sola definición, el pubspec.yaml de todos los módulos se sincroniza mediante el comando flutist generate.

  2. Aplicación automática de reglas de arquitectura
    En Clean Architecture, aunque domain haga referencia directa a data o se generen dependencias circulares, pub no lo impide. Flutist permite activar strictMode, y si se viola esa regla, muestra un error durante generate. Principios que antes vivían solo en documentación o revisiones de código se convierten en reglas ejecutables.

  3. Seguridad de tipos y productividad
    En lugar de referencias a paquetes basadas en cadenas, ofrece autocompletado en el IDE y verificación de tipos en tiempo de compilación mediante accesores generados automáticamente. Además, proporciona funciones de scaffolding para crear estructuras de capas repetitivas o boilerplate, minimizando el costo de la configuración inicial.

  4. Optimización de la experiencia de desarrollo
    Además de permitir la ejecución de pruebas en paralelo o individuales por módulo, con flutist graph se pueden visualizar al instante en el navegador las dependencias entre módulos, incluso cuando son complejas y están muy entrelazadas.

4 tipos de módulos compatibles

  • clean — Clean Architecture de 3 capas (domain / data / presentation)
  • micro — Microfeature de 5 capas (interface / implementation / testing / tests / example)
  • lite — 4 capas, quitando example de micro
  • simple — paquete único (para utilidades, modelos compartidos o app shell)

Comandos CLI

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist check inspecciona solo la arquitectura sin generar archivos → para pipelines de CI
  • Con flutist graph --open puedes ver directamente en el navegador el grafo de dependencias en Mermaid

Enlaces

Si estás evaluando una arquitectura multi-módulo en Flutter, te recomiendo adoptar Flutist. ¡Si me compartes feedback, lo incorporaré activamente! ¡Gracias!🙏

Aún no hay comentarios.

Aún no hay comentarios.