Reto Práctico: App de Rutinas y Ejercicios (FitTrack)
En este reto pondrás en práctica tus habilidades de maquetación y arquitectura en Flutter construyendo la interfaz de FitTrack, una aplicación móvil de entrenamiento físico diseñada bajo los estándares de Google Material Design 3 con el color semilla Deep Purple (#6750A4).
1. Vistas de Referencia
A continuación tienes las dos pantallas móviles generadas en Stitch que debes maquetar con fidelidad:
- Pantalla 1: Rutina Diaria
- Pantalla 2: Detalle de Ejercicio


2. Requerimientos de Arquitectura
Tu solución debe cumplir estrictamente con las siguientes reglas de diseño:
- Separación
Screenfrente aPage:- Las
Screensson las únicas autorizadas a definir elScaffold(con suAppBar,NavigationBaro barra persistente). - Las
Pagescontienen el lienzo visual dentro delbody. Nunca deben devolver unScaffold.
- Las
- 100%
StatelessWidget:- La aplicación debe ser puramente declarativa. Cero
StatefulWidgety cero llamadas asetState. - Toda la información debe fluir desde modelos inmutables pasados como argumentos en los constructores (
props).
- La aplicación debe ser puramente declarativa. Cero
- Layout Responsivo y Hardware:
- Protege las vistas con
SafeAreapara respetar el notch y la barra de gestos del sistema. - Evita desbordes (RenderFlex overflow) envolviendo el contenido desplazable con
SingleChildScrollView. - Usa
Expandedyflexpara que las filas y textos largos se adapten a cualquier ancho sin cálculos manuales de pantalla.
- Protege las vistas con
3. Misión: Descomposición y Componentización
Como ingeniero de software, debes analizar visualmente las dos pantallas y extraer componentes reutilizables en lib/widgets/:
lib/
├── models/ # Modela aquí las entidades inmutables (ejercicios, series, resúmenes)
├── widgets/ # Componentes modulares que tú debes identificar y diseñar
├── pages/ # WorkoutDashboardPage y ExerciseDetailPage (Lienzos sin Scaffold)
├── screens/ # WorkoutDashboardScreen y ExerciseDetailScreen (Scaffold y barras)
└── main.dart
Elementos que debes especificar:
- Átomos y Chips: Identifica los chips de estadísticas (tiempo, calorías, repeticiones) y las insignias tonales de grupo muscular o estado.
- Moléculas e Información: Diseña la tarjeta modular de ejercicio para el listado y el banner tonal de recomendaciones y técnica.
- Componentes de Estado: Diseña la tarjeta de serie (set) capaz de renderizar sus diferentes estados visuales (completada con check, en curso con borde destacado y temporizador, o pendiente).
- Botones de Acción: Crea botones estilo píldora (stadium border) reutilizables para las acciones principales.
4. Criterios de Evaluación
| Criterio | Descripción |
|---|---|
| Arquitectura Limpia | Separación estricta entre Screen (Scaffold) y Page (Lienzo). Cero Scaffolds anidados. |
| Componentización Propia | Desacoplamiento de widgets atómicos en lib/widgets/ con parámetros tipados e inmutables. |
| Responsividad y Hardware | Uso correcto de Expanded, SafeArea y erradicación total del RenderFlex overflow con SingleChildScrollView. |
| Fidelidad y Estilos MD3 | Respeto a las maquetas visuales, bordes redondeados y uso de BoxDecoration sin incurrir en conflictos de color. |