Arquitectura limpia
Capas data / domain /
presentation con fronteras estrictas. El dominio nunca
conoce el backend.
Arquitectura limpia, autenticación, internacionalización, tests y CI ya montados. Clona, renombra el paquete y empieza por tu producto — no por la fontanería.
Construido sobre
Capas data / domain /
presentation con fronteras estrictas. El dominio nunca
conoce el backend.
Errores tipados, guard de auth, modo offline, tests, golden tests y umbral de cobertura bloqueante en CI.
Shell adaptativo: bottom nav flotante en móvil, NavigationRail en tablet y web. Light y dark de serie.
Cada componente vive en una pantalla navegable con su propia URL
(/ui-kit/buttons, deep-link incluido). Revisa
botones, inputs, cards y estados en claro y oscuro sin montar
nada.
Botones, chips, campos y switches con espaciado, radios y tipografía como tokens — sin números mágicos. Cambia el tema y todo responde. Los golden tests fijan el render pixel a pixel.
Ver qué incluyeBúsqueda de usuarios con cubit, paginación offset/limit, dedup y estados de error que conservan lo ya cargado. El patrón exacto que replicarás en tus features reales.
Leer el códigoLa infraestructura que reescribes en cada proyecto, hecha una vez y bien.
data / domain /
presentation, separación estricta.
AppException →
Either<Failure, T> con fpdart.
go_router con redirect testeable: splash, onboarding,
auth.
flutter_bloc: cubits → casos de uso → estados tipados.
get_it con orden de registro explícito.
ARB en/es con
flutter gen-l10n.
Banner global de conectividad y estados de carga/vacío/error.
Unitarios, golden y cobertura bloqueante en GitHub Actions.
Espaciado, radios y tipografía como tokens. Light y dark.
Firebase Cloud Messaging integrado y activable.
git clone a la app corriendoLas credenciales se inyectan en compilación; ningún secreto en el repo.
$ git clone <repo> mi_app && cd mi_app
$ cp dart_defines.example.json dart_defines.json
$ flutter run --dart-define-from-file=dart_defines.json
Clónala, quítale lo que no uses y quédate solo con tu producto.
Clonar la plantilla