PRD — Rachita 🦊🔥
Aplicación de hábitos y creatividad para niñas y niños (Tablet · Landscape)
| Campo |
Valor |
| Producto |
Rachita |
| Versión del documento |
1.0 |
| Fecha |
2026-07-03 |
| Autor |
Johann Velázquez |
| Estado |
Borrador — basado en prototipo funcional Rachita.html |
| Plataforma objetivo |
Tablet Android/iPadOS · Modo Landscape (horizontal) · 1280×800 de referencia |
| Artefacto de referencia |
Rachita.html (prototipo interactivo React de 8 pantallas) |
1. Resumen ejecutivo
Rachita es una aplicación de hábitos gamificada para tablet, dirigida a niñas y niños de ~6 a 10 años, inspirada visualmente en Finch y Little Streaks. La niña cuida a una mascota virtual (su "compañero") que refleja su progreso: completa hábitos diarios, mantiene rachas (streaks), sube un dibujo diario a su Museo personal, y comparte rachas en equipo con familiares o amigas.
El diferenciador clave es el Sistema de Monitoreo de Batería: la app usa el estado de batería del dispositivo como mecánica de cuidado — la mascota "se cansa" cuando la batería está baja y "duerme/entrena en su cápsula" mientras carga, bloqueando el uso de la tablet durante la carga como medida de seguridad y de higiene digital.
Problema que resuelve
- Los niños pequeños carecen de motivación sostenida para hábitos rutinarios (bañarse, dormir temprano, ir a la escuela).
- Los padres necesitan una forma no punitiva de limitar el uso de la tablet mientras carga (riesgo de sobrecalentamiento / hábito de pantalla excesivo).
- No existe un espacio simple donde el niño registre su creatividad diaria y la familia la celebre.
Solución
Una app tablet-first con: mascota emocional, tarjetas de hábitos con check gigante, contador de racha con fuego animado, museo de dibujos con cámara/galería, rachas cooperativas, widgets de pantalla de inicio y estados de batería amigables que interrumpen el flujo de forma clara pero afectuosa.
2. Objetivos y métricas de éxito
2.1 Objetivos de producto
| # |
Objetivo |
Métrica (North Star en negrita) |
| O1 |
Crear adherencia diaria a hábitos |
% de días con los 3 hábitos completados ≥ 60% a 30 días |
| O2 |
Retención emocional vía mascota |
D7 retention ≥ 45%, D30 ≥ 25% |
| O3 |
Reducir uso de tablet en carga |
≥ 90% de sesiones de carga sin desbloqueo manual |
| O4 |
Fomentar creatividad diaria |
≥ 3 dibujos subidos al museo por semana |
| O5 |
Vínculo social/familiar |
≥ 1 racha en equipo activa por usuario a 14 días |
2.2 No-objetivos (fuera de alcance v1)
- Modo teléfono / orientación portrait.
- Multi-perfil en un mismo dispositivo (v1 = 1 niño por tablet).
- Chat libre entre usuarios (solo "enviar ánimo" predefinido, por seguridad infantil).
- Tienda / compras dentro de la app / monetización.
- Contenido educativo curricular (lecciones, quizzes).
- Modo offline-first completo con sincronización compleja (v1: local con backup simple).
3. Usuarios y personas
3.1 Persona primaria — "Lucía" (usuaria niña)
- 7 años, usa la tablet familiar 1–2 h al día.
- No lee textos largos; responde a color, animación, personajes y celebración.
- Motivación: cuidar a su mascota, no "romper" su racha de fuego, mostrar sus dibujos.
- Restricción: no debe requerir escritura compleja, ni contraseñas, ni navegación profunda (máximo 2 niveles).
3.2 Persona secundaria — Madre/Padre/Hermano mayor (configurador)
- Configura hábitos, horarios de recordatorio y toggles de alertas.
- Quiere: evidencia de progreso, control del uso durante la carga, cero contenido inapropiado, cero contacto con extraños.
- Participa como "compañero de racha" (persona: "Dani, su hermana mayor").
3.3 Persona terciaria — Amiga par ("Ana")
- Otra niña con su propia tablet/cuenta; comparte una racha cooperativa mediante código de invitación.
4. Alcance funcional — Módulos
El producto se compone de 8 módulos (todos presentes en el prototipo):
- Onboarding y selección de compañero (Avatar)
- Dashboard principal de hábitos y rachas
- Sistema de Monitoreo de Batería (batería baja + bloqueo en carga)
- Alertas y pantalla de bloqueo del sistema (notificaciones)
- Museo Diario — Subida de dibujo
- Museo Diario — Galería / historial
- Rachas en equipo (cooperativo)
- Widgets de pantalla de inicio (mediano 2×2 y grande 4×2)
5. Requisitos funcionales detallados
Prioridad: P0 = imprescindible v1 · P1 = deseable v1 · P2 = versión futura.
5.1 Módulo 1 — Onboarding y selección de compañero (Avatar)
| ID |
Requisito |
Prioridad |
| AV-01 |
La niña puede elegir entre 3 mascotas prediseñadas: Zorro Rachi (coral #FF8A66), Gata Menta (menta #3FB8AE), Conejo Sol (amarillo #F4B63E). |
P0 |
| AV-02 |
Cuarta opción "Mi dibujo": importar una imagen (foto de un dibujo en papel) desde archivo/cámara, que se recorta en forma de "cabeza de mascota" (border-radius orgánico 34%/40%) y se convierte en el avatar personalizado. |
P0 |
| AV-03 |
La tarjeta seleccionada muestra borde de color y badge "✓ Elegido". |
P0 |
| AV-04 |
Si ya existe un dibujo personalizado, mostrar opción "Cambiar dibujo" para reemplazarlo sin perder la selección. |
P1 |
| AV-05 |
El avatar elegido se refleja en toda la app: sidebar, tarjeta de ánimo, widgets, overlays de batería, notificaciones y rachas en equipo. |
P0 |
| AV-06 |
El avatar personalizado hereda los estados de ánimo (idle/cansado/dormido) mediante filtros y overlays (gotas de sudor, "Z" flotantes). |
P1 |
| AV-07 |
Botón "Continuar" (CTA primario coral, píldora) lleva al Dashboard. |
P0 |
| AV-08 |
El nombre de la niña es configurable (prop childName, default "Lucía") y se usa en saludos y textos. |
P0 |
Estados de la mascota (aplican a las 3 prediseñadas + personalizada):
idle: ojos abiertos con parpadeo (animación blink cada ~5 s), mejillas rosadas, respiración suave (animación breathe).
tired (cansada): cejas caídas, gota de sudor animada (animación sweat).
sleep (dormida): ojos cerrados en arco, letras "Z" flotando (animación floatZ).
5.2 Módulo 2 — Dashboard principal (pantalla "Inicio")
Layout de 3 columnas sobre lienzo 1280×800:
| Zona |
Ancho |
Contenido |
| Columna izquierda (sidebar fija) |
232 px |
Tarjeta de perfil (mascota animada + nombre + badge de nivel "Nv. 7"), barra de XP (320/500), contador de racha con llama animada, menú de navegación (Inicio, Museo Diario, Mi Galería, Rachas en equipo, Alertas, Logros, Ajustes) |
| Columna central (flexible) |
flex |
Saludo "¡Hola, {nombre}!", fecha + contador de hábitos pendientes, chip "Activa en segundo plano", contador X/Y hoy, tarjetas de hábitos |
| Columna derecha |
296 px |
Tarjeta "Tu racha" (llama + número grande + semana L-D), acceso "En equipo", tarjeta de mensaje de la mascota, mini-tarjeta "Museo Diario" con CTA "Subir dibujo de hoy" |
| ID |
Requisito |
Prioridad |
| DA-01 |
Mostrar los hábitos del día como tarjetas grandes (≥90 px de alto) con: franja de color lateral, ícono en contenedor 62×62, nombre (23 px Baloo 2), subtítulo descriptivo, y botón check circular de 74×74 px. |
P0 |
| DA-02 |
Hábitos v1 de ejemplo: Bañarse (menta, "Antes de dormir"), Dormir temprano (lila, "A las 9:00 pm"), Ir a la escuela (coral, "Sin faltar nunca"). Los hábitos deben ser configurables por el adulto (nombre, subtítulo, ícono, color). |
P0 (config P1) |
| DA-03 |
Al tocar el check: transición a círculo verde #46C98B con palomita SVG animada (stroke draw 0.5 s) + animación pop + badge "¡Hecho!". El toque es reversible (toggle) para corregir errores. |
P0 |
| DA-04 |
Al completar todos los hábitos del día: lluvia de confeti (26 piezas, colores de la paleta, caída 1.1–2.1 s), banner "¡Racha asegurada hoy! 🔥" en la tarjeta de racha, y mensaje celebratorio de la mascota ("¡Lo lograste todo, {nombre}! Estoy súper orgulloso de ti."). |
P0 |
| DA-05 |
El confeti es desactivable (prop/ajuste confettiOn) por accesibilidad (sensibilidad a estímulos). |
P1 |
| DA-06 |
Contador de racha global (prop streakStart, ej. 12 días) visible en sidebar y columna derecha con llama animada (flicker 1.5–1.6 s). |
P0 |
| DA-07 |
Vista semanal L-M-M-J-V-S-D con círculos marcados (palomita coral) en días cumplidos. |
P0 |
| DA-08 |
Barra de estado simulada del SO: hora, señal, porcentaje e ícono de batería cuyo color/relleno reacciona al estado (86% normal gris, 18% baja coral #FF6B3D, 64% cargando verde #9BE36D). |
P0 |
| DA-09 |
Header con contador "{hechos}/{total} hoy" en píldora blanca. |
P0 |
| DA-10 |
La tarjeta de mensaje de la mascota cambia según contexto (ánimo normal vs. celebración). |
P1 |
| DA-11 |
Regla de racha: la racha del día se asegura al completar el 100% de hábitos antes de medianoche (hora local). Si no, la racha se reinicia a 0 (v1) — considerar "congelador de racha" como P2. |
P0 |
5.3 Módulo 3 — Sistema de Monitoreo de Batería
Máquina de estados: normal → low (<20%) → charging (conector detectado) → normal.
5.3.1 Estado Batería Baja (<20%) — Overlay
| ID |
Requisito |
Prioridad |
| BA-01 |
Al caer la batería por debajo del 20%, mostrar overlay modal (fondo oscurecido rgba(40,30,26,.5) + blur 4 px) sobre cualquier pantalla, z-index superior al contenido pero inferior al bloqueo de carga. |
P0 |
| BA-02 |
El overlay muestra: mascota en estado "cansada" (cejas caídas + sudor, animación breathe), título "¡Me estoy quedando sin energía!", texto con el % real ("Solo me queda 18% de batería…"), barra de batería visual coral, y 2 botones: "Ahora no" (secundario) y "Conectar cargador" (primario coral con animación coralpulse). |
P0 |
| BA-03 |
"Ahora no" cierra el overlay y permite seguir usando la app; el overlay reaparece a umbrales menores (15%, 10%, 5%) — no debe ser spam constante. |
P1 |
| BA-04 |
El texto y la narrativa presentan la carga como cuidar a la mascota, nunca como castigo. |
P0 |
| BA-05 |
Usar la Battery Status API / API nativa del SO para leer nivel y estado de carga reales. |
P0 |
5.3.2 Estado En Carga — Pantalla de bloqueo de seguridad
| ID |
Requisito |
Prioridad |
| CA-01 |
Al detectar conexión al cargador, activar automáticamente pantalla de bloqueo a pantalla completa (fondo nocturno #2A2350 con estrellas parpadeantes, animación twinkle). Bloquea toda interacción con la app. |
P0 |
| CA-02 |
Mostrar mascota dormida dentro de una "cápsula de energía" (burbuja translúcida con glow pulsante y respiración), título "Entrenando en mi cápsula de energía…", y subtexto "Guarda la tablet mientras se carga. Cuando despierte, ¡estaremos a tope de batería para jugar y dibujar!". |
P0 |
| CA-03 |
Barra de progreso de carga real (ej. "Cargando · 64%") en verde #9BE36D. |
P0 |
| CA-04 |
Botón de escape "Ya la desconecté": verifica el estado real; solo desbloquea si el cargador efectivamente se desconectó (evitar bypass). En el prototipo desbloquea directo — en producción validar contra la API. |
P0 |
| CA-05 |
Al llegar a 100%, la mascota "despierta" con animación de celebración y la pantalla invita a desconectar. |
P1 |
| CA-06 |
Registro (log local) de eventos de carga para métrica O3. |
P2 |
5.4 Módulo 4 — Alertas y pantalla de bloqueo del sistema
| ID |
Requisito |
Prioridad |
| AL-01 |
Rachita corre en segundo plano y envía notificaciones push locales al lockscreen del SO (vista previa simulada en el prototipo: fondo degradado violeta, reloj gigante 9:41, fecha). |
P0 |
| AL-02 |
Notificación de batería baja: "🔋 ¡Tu zorro está casi sin energía (18%)! Conéctame al cargador para no perder tu racha de {N} días." — con ícono de llama y branding Rachita. |
P0 |
| AL-03 |
Notificación de carga: "⚡ Estoy entrenando en mi cápsula de energía. Guárdame mientras cargo y volveré recargado. 💤" |
P0 |
| AL-04 |
Panel de configuración "Cuándo avisarte" con 3 toggles: avisar con poca batería (<20%), recordar no usar mientras carga, recordatorio de hábitos a las 7 pm. |
P0 |
| AL-05 |
Los toggles deben ser accesibles desde Ajustes con verificación de adulto (gate parental simple, ej. operación matemática). |
P1 |
| AL-06 |
Indicador visible en el Dashboard ("Activa en segundo plano" con punto verde) que enlaza a esta pantalla. |
P1 |
5.5 Módulo 5 — Museo Diario · Subir dibujo
| ID |
Requisito |
Prioridad |
| MU-01 |
Layout 2 zonas: izquierda = área de previsualización (placeholder rayado con borde punteado "[ aquí aparecerá tu dibujo ]") + 2 botones enormes (150 px ancho, íconos 34 px): "Tomar foto" (coral, abre cámara) y "Abrir galería" (menta, abre picker de imágenes). |
P0 |
| MU-02 |
Zona derecha: campo de texto estilizado como nube de pensamiento (tarjeta blanca redondeada con burbujas circulares decorativas debajo), placeholder "Hoy dibujé…", tipografía Nunito 16 px. |
P0 |
| MU-03 |
Botón "Guardar en mi museo" (CTA coral) persiste: imagen + comentario + fecha + medio (opcional) y navega a la Galería. |
P0 |
| MU-04 |
Máximo 1 dibujo "del día" destacado; permitir múltiples obras por día como P2. |
P1 |
| MU-05 |
Botón atrás (‹) regresa al Dashboard. Encabezado con fecha del día. |
P0 |
| MU-06 |
Compresión de imagen local (max ~1600 px lado largo) para almacenamiento eficiente. |
P1 |
| MU-07 |
Permisos de cámara/galería solicitados en contexto con explicación amigable. |
P0 |
5.6 Módulo 6 — Museo Diario · Galería (historial)
| ID |
Requisito |
Prioridad |
| GA-01 |
Cuadrícula de 3 columnas con scroll vertical, agrupada por mes con encabezado ("JUNIO 2026"). |
P0 |
| GA-02 |
Primera celda fija: tarjeta punteada "Sube el de hoy" (+ circular coral) que navega a Subir dibujo. |
P0 |
| GA-03 |
Cada obra: tarjeta blanca con imagen (150 px alto), chip de fecha superpuesto, etiqueta de medio (crayón/acuarela/marcador/lápiz), título y comentario de la niña. |
P0 |
| GA-04 |
Contador total de obras en el encabezado ("12 obras · sigue creando, {nombre}"). |
P1 |
| GA-05 |
Tocar una obra abre vista detalle a pantalla completa con zoom (pinch) — P1 en prototipo no implementado. |
P1 |
| GA-06 |
Exportar/compartir una obra (a padres, por canal seguro) — P2. |
P2 |
5.7 Módulo 7 — Rachas en equipo (cooperativo)
| ID |
Requisito |
Prioridad |
| EQ-01 |
La niña puede tener rachas compartidas con otras personas (amiga, hermana, madre/padre). v1 del prototipo: 2 equipos activos (Ana — mejor amiga, racha 8, "Dormir temprano"; Dani — hermana mayor, racha 5, "Leer 10 minutos"). |
P0 |
| EQ-02 |
Regla cooperativa: la racha del equipo crece solo si ambas cumplen el mismo día; si una falla, "la racha descansa" (lenguaje no punitivo). |
P0 |
| EQ-03 |
Tarjeta por equipo: avatares de ambas unidos por un corazón coral, nombre y rol del compañero, llama + días juntas, "Reto en común", 2 chips de estado (✓ Hiciste tu parte hoy / ⏳ Aún te falta hoy · ✓ {Nombre} ya cumplió / ⏳ {Nombre} va en camino), semana de puntos L-D. |
P0 |
| EQ-04 |
CTA contextual según estado: "Hacer mi parte ✓" (si no ha cumplido) → "Enviar ánimo a {Nombre} 💪" (si ella cumplió y la otra no) → confirmación "¡Ánimo enviado! 🎉" → "¡Racha a salvo hoy! 🔥" (ambas cumplieron, con animación glow). |
P0 |
| EQ-05 |
El "ánimo" es un mensaje predefinido/sticker — sin texto libre (seguridad infantil). |
P0 |
| EQ-06 |
Tarjeta de invitación: código corto legible ("LUCIA-7F3"), tocar para copiar (feedback "¡Código copiado! ✓") y botón "Compartir invitación" (share sheet del SO gestionado por el adulto). |
P0 |
| EQ-07 |
Emparejamiento requiere aprobación del adulto en ambos extremos. |
P0 |
| EQ-08 |
Límite v1: máximo 3 equipos activos. |
P1 |
5.8 Módulo 8 — Widgets de pantalla de inicio
| ID |
Requisito |
Prioridad |
| WI-01 |
Widget Mediano (2×2, ~200×200): mascota mini + llama con racha, texto "HOY · X/Y", fila de 3 botones-hábito (34 px alto) marcables con un toque sin abrir la app. |
P0 |
| WI-02 |
Widget Grande (4×2, ~430×200): panel izquierdo con llama + número de racha + "días de racha"; panel derecho con lista de hábitos (checkbox 30×30 + nombre, tachado/atenuado al completarse). |
P0 |
| WI-03 |
Los toques en el widget actualizan el estado central (sincronización bidireccional con la app y entre widgets). |
P0 |
| WI-04 |
El widget refleja el avatar elegido y el color de estado (✓ verde #46C98B / ○ beige #F1E6DE). |
P1 |
| WI-05 |
Implementación nativa: App Widgets (Android) / WidgetKit (iPadOS). |
P0 |
6. Guía de estilo visual (Design System)
6.1 Paleta de colores
| Nombre |
Hex |
Uso |
| Coral |
#FF8A66 |
Primario: CTAs, marca, mascota zorro, racha |
| Coral intenso |
#FF6B3D |
Números de racha, alertas de batería baja |
| Menta |
#3FB8AE |
Secundario: hábitos, gata, botón galería |
| Sol |
#FBC24E / #F4B63E |
XP, logros, conejo |
| Lila |
#8C7CE8 |
Museo Diario, notificaciones de carga |
| Verde éxito |
#46C98B |
Checks completados, toggles activos |
| Verde carga |
#9BE36D |
Barra de carga de batería |
| Rosa |
#FF6B8A |
Alertas (ítem de menú) |
| Crema |
#FFF6EE |
Fondo principal de la app |
| Crema cálido |
#FFE9DF / #FFF1E8 |
Fondos de tarjetas suaves |
| Tinta |
#43352F |
Texto principal |
| Gris cálido |
#a4938a / #8a7a72 |
Texto secundario |
| Noche |
#2A2350 / degradado #39306E→#5A4E97→#B98FC4 |
Pantallas de carga y lockscreen |
Colores "soft" pareados por hábito: menta #D6F3F0, lila #E7E3FB, coral #FFE0D5.
6.2 Tipografía
| Fuente |
Pesos |
Uso |
| Baloo 2 (redonda, amigable) |
500–800 |
Títulos, números grandes, botones, badges |
| Nunito (alta legibilidad) |
400–800 |
Cuerpo, descripciones, subtítulos |
Escala: títulos de pantalla 26–34 px · nombres de hábito 23 px · número de racha 42–92 px · cuerpo 13–16 px · captions 11–12 px.
6.3 Formas, sombras y touch targets
- Radios: 14–24 px en tarjetas; 999 px (píldora) en CTAs y chips; 50% en checks.
- Sombras: suaves y cálidas, teñidas del color del elemento (ej.
0 12px 24px rgba(255,138,102,.32) para coral). Nunca sombras negras duras.
- Áreas de toque: mínimo 58 px; el check de hábito es de 74 px (regla clave para manos pequeñas).
- Botón primario = píldora coral con sombra; secundario = borde 2 px
#EBDFD7 sobre blanco.
6.4 Catálogo de animaciones (microinteracciones)
| Animación |
Duración |
Uso |
breathe |
2.4–3.6 s loop |
Respiración de la mascota |
flicker |
1.5–1.6 s loop |
Llama de racha |
pop |
0.35–0.4 s |
Aparición de checks, badges "¡Hecho!" |
drawCheck |
0.5 s |
Trazo de la palomita SVG |
confFall |
1.1–2.1 s |
Confeti al completar todo |
glow |
2.4–3 s loop |
Halo verde "racha a salvo" y cápsula de carga |
coralpulse |
1.6 s loop |
CTA urgente "Conectar cargador" |
slideUp |
0.4–0.5 s |
Entrada de modales y notificaciones |
twinkle |
2.2–3 s loop |
Estrellas en pantallas nocturnas |
blink |
5 s loop |
Parpadeo de ojos de la mascota |
sweat |
2.4 s loop |
Gota de sudor (estado cansado) |
floatZ |
2.6 s loop |
Letras "Z" (estado dormido) |
Todas las animaciones deben respetar prefers-reduced-motion (P1).
7. Flujos de interacción clave
7.1 Completar un hábito
7.2 Batería baja → carga → desbloqueo
7.3 Racha en equipo (día típico)
- Lucía abre "Rachas en equipo" → ve tarjeta de Ana con "⏳ Aún te falta hoy".
- Toca "Hacer mi parte ✓" → su chip pasa a verde.
- Ana aún no cumple → aparece "Enviar ánimo a Ana 💪".
- Lucía lo toca → "¡Ánimo enviado! 🎉" (Ana recibe notificación con sticker).
- Ana cumple → ambas ven "¡Racha a salvo hoy! 🔥" con glow y la racha sube a 9.
7.4 Museo diario
Dashboard → "Subir dibujo de hoy" → Tomar foto / Abrir galería → previsualización → escribir comentario en nube de pensamiento → "Guardar en mi museo" → Galería con la obra nueva y chip de fecha.
8. Navegación y arquitectura de información
Profundidad máxima: 2 niveles. Botón atrás (‹) siempre en la misma posición (arriba-izquierda, 40×40).
9. Modelo de datos (v1)
Persistencia v1: almacenamiento local del dispositivo. Rachas en equipo requieren backend mínimo (sync de estado diario + códigos de invitación).
10. Requisitos no funcionales
| Categoría |
Requisito |
| Rendimiento |
60 fps en animaciones; arranque < 2 s; imágenes de galería lazy-load |
| Batería |
El monitoreo en segundo plano debe consumir < 1% batería/día (usar eventos del SO, no polling) |
| Privacidad infantil |
Cumplir COPPA / GDPR-K: sin anuncios, sin tracking de terceros, sin texto libre entre usuarios, datos del menor cifrados, imágenes solo locales salvo consentimiento parental |
| Seguridad |
Gate parental para Ajustes e invitaciones; validación real del estado de carga (no confiar en el botón de escape); códigos de invitación de un solo uso con expiración |
| Accesibilidad |
Touch targets ≥ 58 px; contraste AA en textos sobre crema; prefers-reduced-motion; textos cortos con emojis de apoyo; opción de desactivar confeti |
| Idioma |
v1 español (MX); arquitectura preparada para i18n |
| Offline |
Hábitos, museo y batería funcionan 100% offline; rachas en equipo se sincronizan al reconectar con resolución "el día cuenta si se marcó localmente ese día" |
| Compatibilidad |
Tablets ≥ 8" · Android 10+ / iPadOS 15+ · solo landscape (bloquear rotación) |
11. Analítica (respetando privacidad infantil)
Eventos mínimos, anónimos y agregados (sin PII):
habit_completed, all_habits_completed_day
streak_incremented, streak_lost
battery_low_shown, battery_low_dismissed, charging_lock_shown, charging_lock_bypassed
artwork_uploaded (sin contenido), gallery_opened
team_streak_created, nudge_sent, team_streak_safe
widget_habit_toggled (por tamaño de widget)
12. Criterios de aceptación (resumen QA)
- ✅ Con batería simulada al 18%, el overlay de batería baja aparece sobre cualquier pantalla y muestra la mascota cansada con el % correcto.
- ✅ Al conectar el cargador, el bloqueo aparece en < 1 s sin interacción del usuario; no se puede navegar detrás de él.
- ✅ "Ya la desconecté" NO desbloquea si el cable sigue conectado.
- ✅ Marcar los 3 hábitos dispara confeti una sola vez, y desmarcar/remarcar no lo repite en el mismo estado.
- ✅ El avatar personalizado importado aparece en sidebar, widgets, overlay de batería (con sudor) y cápsula de carga (con Z).
- ✅ Marcar un hábito desde el widget actualiza el Dashboard al abrir la app, y viceversa.
- ✅ En racha en equipo, el CTA sigue exactamente la secuencia: Hacer mi parte → Enviar ánimo → Ánimo enviado → Racha a salvo.
- ✅ Con
confettiOn = false, completar todo no muestra confeti pero sí el banner y el mensaje de la mascota.
- ✅ Todos los touch targets interactivos miden ≥ 58 px en dispositivo real.
- ✅ La app funciona sin conexión para hábitos y museo.
13. Riesgos y mitigaciones
| Riesgo |
Impacto |
Mitigación |
| La niña descubre cómo saltarse el bloqueo de carga |
Alto (rompe O3) |
Validar contra API del SO; el botón de escape verifica el estado real; modo kiosco opcional (P2) |
| Pérdida de racha genera frustración/abandono |
Alto |
Lenguaje no punitivo ("la racha descansa"), congelador de racha (P2), la mascota nunca "muere" |
| Notificaciones en segundo plano restringidas por el SO |
Medio |
Solicitar exención de optimización de batería con explicación al adulto; degradar con recordatorios al abrir |
| Fotos del museo con contenido sensible |
Medio |
Almacenamiento solo local por defecto; compartir requiere gate parental |
| Widget con estado desincronizado |
Medio |
Fuente de verdad única en almacenamiento compartido app↔widget; refresh al abrir |
| Complejidad del emparejamiento entre familias |
Medio |
Códigos cortos legibles + aprobación de adulto en ambos lados |
14. Roadmap sugerido
| Fase |
Alcance |
| MVP (v1.0) |
Onboarding/avatar (3 mascotas + dibujo importado), Dashboard con 3 hábitos, racha global, batería baja + bloqueo de carga, notificaciones locales, museo (subir + galería), widgets 2×2 y 4×2 |
| v1.1 |
Hábitos configurables por el adulto, gate parental, ajustes, congelador de racha, detalle de obra con zoom, prefers-reduced-motion |
| v1.2 |
Rachas en equipo con backend + invitaciones, envío de ánimos, logros (pantalla completa) |
| v2.0 |
Multi-perfil, más mascotas/accesorios desbloqueables por XP, exportar museo en PDF "libro de arte", sonidos y voz de mascota |
15. Funcionalidades deseables (backlog de ideas — no comprometidas)
Ninguna de estas funcionalidades bloquea el MVP. Son propuestas para enriquecer el producto una vez validado el core. Cada una indica el módulo al que extiende y su valor esperado.
15.1 Gamificación y mascota
| ID |
Funcionalidad |
Descripción |
Valor |
| D-01 |
Accesorios y evolución de la mascota |
Desbloquear sombreros, bufandas, fondos de habitación con XP; la mascota "crece" visualmente al subir de nivel (Nv. 1–10 con 3 etapas). |
Refuerza retención (O2) dando destino al XP, hoy solo visual |
| D-02 |
Habitación de la mascota |
Espacio decorable donde vive el compañero; los muebles se ganan con rachas largas (7, 14, 30 días). |
Metas de mediano plazo más allá de la racha diaria |
| D-03 |
Congelador de racha ("poción de descanso") |
1 por semana: si falla un día, la racha "duerme" en vez de perderse. Se gana completando semanas perfectas. |
Mitiga el riesgo #2 (frustración por pérdida de racha) |
| D-04 |
Logros coleccionables |
Pantalla de Logros (hoy placeholder en el menú) con insignias ilustradas: "Primera semana", "Artista x10", "Madrugadora", "Cargadora responsable" (cargar la tablet sin protestar 5 veces). |
Completa el ítem de menú existente; celebra conductas específicas |
| D-05 |
Sonidos y voz de la mascota |
Efectos suaves al marcar hábitos, ronquidos en la cápsula, "¡bien hecho!" grabado. Con toggle de silencio y respetando el modo silencio del SO. |
Refuerzo multisensorial para no-lectores |
| D-06 |
Reacciones de la mascota al clima/hora |
La mascota saluda distinto en la mañana/noche y comenta el clima (API local u hora del sistema). |
Sensación de "ser vivo", vínculo emocional |
15.2 Hábitos y rutinas
| ID |
Funcionalidad |
Descripción |
Valor |
| D-07 |
Editor de hábitos para el adulto |
CRUD completo tras gate parental: nombre, subtítulo, ícono (catálogo ampliado), color, días de la semana aplicables y horario límite. |
Hoy los 3 hábitos están fijos; es la petición #1 esperable de padres |
| D-08 |
Hábitos con pasos (checklist hija) |
Un hábito puede tener sub-pasos ilustrados (ej. "Lavarse los dientes": tomar cepillo → pasta → 2 minutos → enjuagar) con temporizador visual. |
Guía a niños pequeños que no saben "qué cuenta como hecho" |
| D-09 |
Temporizador visual infantil |
Cuenta regresiva tipo "pastel que se come" para hábitos con duración (leer 10 min, cepillado 2 min). |
Los niños de 6–8 no dimensionan el tiempo abstracto |
| D-10 |
Rutinas por momento del día |
Agrupar hábitos en "Mañana / Tarde / Noche" con encabezados y orden sugerido; el dashboard resalta la rutina activa según la hora. |
Reduce carga cognitiva cuando hay >5 hábitos |
| D-11 |
Verificación con foto (opcional) |
El adulto puede marcar un hábito como "requiere evidencia": la niña toma una foto (cama tendida, mochila lista) que el adulto aprueba. |
Confianza para hábitos no observables |
15.3 Museo y creatividad
| ID |
Funcionalidad |
Descripción |
Valor |
| D-12 |
Lienzo de dibujo integrado |
Dibujar directamente en la tablet (pincel, crayón, colores de la paleta Rachita) además de fotografiar dibujos en papel. |
Elimina fricción cámara/papel; aprovecha el stylus |
| D-13 |
Marcos y sellos para las obras |
Decorar la obra del día con marcos desbloqueables y stickers de la mascota antes de guardarla. |
Conecta gamificación con creatividad |
| D-14 |
"Libro de arte" exportable |
Generar PDF mensual con las obras, fechas y comentarios, listo para imprimir o enviar a los abuelos (vía adulto). |
Valor tangible para la familia; ya sugerido en v2.0 del roadmap |
| D-15 |
Reto creativo del día |
Sugerencia opcional al abrir el museo: "Hoy dibuja… tu animal favorito con sombrero". Rotación de ~90 prompts. |
Resuelve el "no sé qué dibujar", aumenta O4 |
| D-16 |
Nota de voz en la obra |
Además del comentario escrito, grabar hasta 30 s explicando el dibujo (para niñas que aún no escriben fluido). |
Accesibilidad por edad; recuerdo familiar valioso |
15.4 Familia y social seguro
| ID |
Funcionalidad |
Descripción |
Valor |
| D-17 |
Panel del adulto (reporte semanal) |
Vista tras gate parental o web: % de cumplimiento, evolución de racha, obras nuevas, eventos de carga. Opcional resumen por correo. |
Cierra el loop con el configurador (persona secundaria) |
| D-18 |
Reacciones familiares a las obras |
Los compañeros de equipo aprobados pueden reaccionar a un dibujo con stickers predefinidos (👏 ⭐ ❤️). Sin comentarios de texto libre. |
Audiencia para el museo sin riesgo de chat |
| D-19 |
Racha familiar (3+ miembros) |
Extender rachas en equipo a grupos ("Toda la familia lee 10 min"); la racha crece solo si todos cumplen. |
Evolución natural de EQ-01 con la misma regla cooperativa |
| D-20 |
Metas con recompensa del mundo real |
El adulto define una recompensa pactada ("30 días de racha = ida al cine") visible como termómetro de progreso. |
Puente entre motivación digital y familiar |
15.5 Bienestar digital y batería
| ID |
Funcionalidad |
Descripción |
Valor |
| D-21 |
Modo "hora de dormir" |
A la hora configurada, la app baja brillo/paleta a tonos nocturnos y la mascota bosteza e invita a cerrar; opcional bloqueo suave hasta la mañana. |
Extiende la mecánica de cuidado más allá de la batería |
| D-22 |
Límite de tiempo de uso diario |
Presupuesto de minutos configurado por el adulto; la mascota "se cansa" gradualmente al agotarse (misma narrativa que batería baja). |
Higiene digital coherente con el sistema existente |
| D-23 |
Historial de cuidado de batería |
Mini-pantalla con calendario de días en que cargó la tablet correctamente; alimenta el logro "Cargadora responsable" (D-04). |
Refuerza O3 con feedback positivo visible |
| D-24 |
Modo kiosco/anclaje opcional |
Integración con Screen Pinning (Android) / Acceso Guiado (iPadOS) para que el bloqueo de carga no pueda evadirse saliendo de la app. |
Mitiga el riesgo #1 (bypass del bloqueo) |
15.6 Plataforma y accesibilidad
| ID |
Funcionalidad |
Descripción |
Valor |
| D-25 |
Narración por voz (TTS) |
Botón de altavoz que lee títulos y mensajes en voz alta; opción "leer todo automáticamente" para pre-lectores. |
Amplía el rango de edad hacia abajo (4–6 años) |
| D-26 |
Temas de paleta alternativos |
2–3 variantes (noche, alto contraste, y una paleta fría) manteniendo la misma jerarquía visual. |
Accesibilidad visual y preferencia personal |
| D-27 |
Multi-perfil por dispositivo |
Hasta 3 niños en la misma tablet con selector de perfil al abrir (avatar como identificador, sin contraseña). |
Realidad de tablets familiares compartidas; ya en v2.0 |
| D-28 |
Copia de seguridad familiar |
Backup cifrado del perfil, historial y museo en la nube activado por el adulto, con restauración al cambiar de dispositivo. |
Protege años de rachas y dibujos (hoy todo es local) |
| D-29 |
Soporte multi-idioma |
Inglés como segundo idioma aprovechando la arquitectura i18n prevista en §10. |
Ampliación de mercado |
Priorización sugerida del backlog
| Horizonte |
Candidatas |
| Corto plazo (mayor valor / menor esfuerzo) |
D-03 congelador de racha · D-07 editor de hábitos · D-04 logros · D-15 reto creativo · D-23 historial de carga |
| Mediano plazo |
D-01 accesorios · D-12 lienzo de dibujo · D-17 panel del adulto · D-21 hora de dormir · D-16 nota de voz · D-24 modo kiosco |
| Largo plazo |
D-02 habitación · D-14 libro de arte · D-19 racha familiar · D-25 TTS · D-27 multi-perfil · D-28 backup en la nube |
16. Preguntas abiertas
- ¿La racha global se pierde por completo al fallar un día, o se adopta "congelador" desde v1? (Recomendación: v1 simple, congelador en v1.1.)
- ¿Los hábitos tienen horario límite individual (ej. "Bañarse antes de 9 pm") que afecte cuándo cuentan para la racha?
- ¿El "medio" del dibujo (crayón/acuarela/…) lo etiqueta la niña, el adulto, o se omite en v1?
- ¿Qué SO se prioriza para el primer release (Android tablet vs iPad)? Los widgets interactivos tienen restricciones distintas por plataforma.
- ¿El nivel/XP (Nv. 7, 320/500) tiene tabla de progresión definida y recompensas asociadas, o es solo visual en v1?
- ¿Se necesita panel/vista para el adulto (web o dentro de la app tras gate) con reporte semanal?
Apéndice A — Inventario del prototipo Rachita.html
| Pantalla (tab) |
Estado en prototipo |
Cobertura PRD |
| Guía (estilo visual) |
✅ Completa |
§6 |
| Avatar (elegir compañero) |
✅ Completa con import de imagen funcional |
§5.1 |
| Inicio (dashboard) |
✅ Completa con toggles y confeti funcionales |
§5.2 |
| Equipo (rachas compartidas) |
✅ Completa con máquina de estados de CTA |
§5.7 |
| Alertas (lockscreen + toggles) |
✅ Visual completa (toggles estáticos) |
§5.4 |
| Museo (subir) |
✅ Visual completa (cámara/galería simuladas) |
§5.5 |
| Galería |
✅ Completa con 5 obras de ejemplo + celda "sube el de hoy" |
§5.6 |
| Widgets |
✅ Ambos tamaños funcionales (toggle real) |
§5.8 |
| Batería baja / En carga |
✅ Overlays funcionales vía botones de simulación |
§5.3 |
Props configurables del prototipo: childName (texto, default "Lucía"), streakStart (0–365, default 12), confettiOn (booleano, default true).