Flutist: ¡He creado un framework para gestionar arquitectura modular de Flutter! (feat. Tuist)
(flutist-1pn8eqs9s-seonwookes-projects.vercel.app)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?"
-
Configuración declarativa del proyecto
En lugar de modificar directamente elpubspec.yamlde cada módulo, se declaran las versiones de paquetes enpackage.darty el grafo de dependencias entre módulos enproject.dart. Con una sola definición, elpubspec.yamlde todos los módulos se sincroniza mediante el comandoflutist generate. -
Aplicación automática de reglas de arquitectura
En Clean Architecture, aunquedomainhaga referencia directa adatao se generen dependencias circulares,pubno lo impide. Flutist permite activarstrictMode, y si se viola esa regla, muestra un error durantegenerate. Principios que antes vivían solo en documentación o revisiones de código se convierten en reglas ejecutables. -
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. -
Optimización de la experiencia de desarrollo
Además de permitir la ejecución de pruebas en paralelo o individuales por módulo, conflutist graphse 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, quitandoexampledemicrosimple— paquete único (para utilidades, modelos compartidos o app shell)
Comandos CLI
flutist init/create/generate/check/pub/scaffold/test/graphflutist checkinspecciona solo la arquitectura sin generar archivos → para pipelines de CI- Con
flutist graph --openpuedes ver directamente en el navegador el grafo de dependencias en Mermaid
Enlaces
- Docs: https://flutist-web.vercel.app/docs
- pub.dev: https://pub.dev/packages/flutist
- GitHub: https://github.com/seonwooke/flutist
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.