Skip to content

About

App móvil (Expo, React Native, TypeScript) para entrenar la memoria de personas mayores: 5 juegos accesibles, sin internet ni cuentas. Desarrollo guiado por especificaciones con Spec Kit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Logo de MindTrainer

MindTrainer

App móvil para entrenar la memoria de personas mayores con cinco juegos sencillos.
Sin internet, sin cuentas y sin prisas: todo ocurre dentro del teléfono.

CI Expo SDK 58 React Native 0.88 TypeScript strict Licencia MIT

▶ Probar la demo en el navegador  ·  Descargar el APK para Android

Los juegos

Juego En qué consiste
Parejas Encontrar las cartas iguales. Tres tamaños de partida: 6, 8 o 12 cartas.
Forma la palabra Ordenar letras desordenadas. 5 palabras por partida, elegidas de más de 100 palabras cotidianas.
Sopa de letras Encontrar palabras escondidas en cuadrículas pequeñas y medianas.
Adivinanzas Elegir la respuesta entre varias opciones. 5 por partida, de un banco de 50.
Diferencias Encontrar las 3 diferencias entre dos dibujos. 6 ambientes (salón, cocina, jardín, dormitorio, playa y granja) compuestos al azar en cada partida.

Diseñada para personas mayores

La accesibilidad no es un añadido: son reglas del proyecto, y algunas las comprueban pruebas automáticas.

  • Letra de al menos 22 puntos y botones de al menos 64 puntos de alto, centralizados en src/tema.ts.
  • Contraste de al menos 7 a 1 (nivel AAA de WCAG) en todos los pares de texto y fondo. Lo verifica tests/tema-contraste.test.tsx.
  • Sin límites de tiempo ni penalizaciones: cada persona va a su ritmo.
  • Iconos siempre junto al texto, nunca en su lugar, y un color propio para cada juego.
  • Respeta "reducir movimiento": la única animación de la app (la de victoria) se adapta.

Privacidad por diseño

  • Sin servidor, sin cuentas y sin análisis de uso. Ningún dato sale del teléfono.
  • El APK de Android no pide ningún permiso: internet, cámara, micrófono, ubicación, contactos y almacenamiento están bloqueados de forma explícita en app.json.
  • Funciona completa en modo avión.

Tecnología

  • Expo SDK 58, React Native 0.88, React 19 y TypeScript en modo strict.
  • ESLint con la configuración oficial de Expo y GitHub Actions, que comprueba tipos, estilo y pruebas en cada cambio y publica la demo web en GitHub Pages.
  • Dibujos vectoriales propios con react-native-svg; ninguna imagen se descarga.
  • 645 pruebas con Jest y React Native Testing Library: reglas, aciertos, fallos, puntuación y final de partida de cada juego. La lógica de cada juego está en funciones puras (juego.ts), separadas de las pantallas, para probarla de forma aislada.
  • Compilación del APK con EAS Build.

Cómo se ha construido

El proyecto sigue un flujo de desarrollo guiado por especificaciones con Spec Kit:

  1. Una constitución con los principios que mandan sobre todo lo demás: simplicidad, cero alcance no especificado, privacidad y accesibilidad.
  2. Cada funcionalidad pasa por especificación → plan → tareas → implementación, en su propia rama. Las 12 están en specs/, con su guía de comprobación manual.
  3. Cada criterio de éxito puede comprobarlo una persona no técnica usando la app.

La implementación se ha hecho con ayuda de Claude Code (los commits lo indican con Co-Authored-By). Las especificaciones, las decisiones de producto y la comprobación con la app son trabajo propio. La configuración del agente está en CLAUDE.md y .claude/.

Probarla

En el navegador, sin instalar nada

roberps.github.io/mindtrainer: la misma app compilada para web con Expo, en el móvil o en el ordenador. Es una demo para probarla desde un enlace: el producto es la app de Android, que funciona sin internet. La demo tampoco guarda ni envía ningún dato.

En Android

Descarga el APK de la sección Releases y sigue la guía de instalación (Android 7.0 o superior).

Desde el código

Necesitas Node.js y la app Expo Go en el móvil.

npm install        # dependencias
npm start          # arranca la app; escanea el código QR con Expo Go
npm test           # pruebas automáticas
npm run typecheck  # comprobación de tipos
npm run lint       # revisión del código con ESLint
npm run web        # la versión web en el navegador del ordenador

Para generar el APK: docs/generar-apk.md.

Estructura

App.tsx              Decide qué pantalla se ve: bienvenida, lista de juegos o un juego
src/
├── actividades/     Un juego por carpeta: reglas puras (juego.ts), contenido y pantallas
├── pantallas/       Bienvenida, inicio y el marco común de cada juego
├── componentes/     Botones, iconos y piezas compartidas
├── tema.ts          Tamaños y colores accesibles
└── textos.ts        Todos los textos de la app
tests/               Pruebas de cada juego y de las reglas de accesibilidad
specs/               Especificación, plan y tareas de cada funcionalidad
docs/                Guías para generar e instalar el APK
.github/workflows/   CI (tipos, ESLint y pruebas) y publicación de la demo web

Licencia

MIT. Usa react-native-svg (MIT), @expo/vector-icons (MIT) y sus iconos Material Design Icons (Apache 2.0), que conservan sus propias licencias.

About

App móvil (Expo, React Native, TypeScript) para entrenar la memoria de personas mayores: 5 juegos accesibles, sin internet ni cuentas. Desarrollo guiado por especificaciones con Spec Kit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages