Una aplicación móvil educativa desarrollada con React Native para ayudar a los niños a aprender matemáticas de manera divertida, visual y motivadora.
KidsMathApp es una aplicación móvil multiplataforma (iOS y Android) que refuerza habilidades matemáticas en niños de forma divertida, sin penalizar errores y fomentando el aprendizaje progresivo.
✅ Versión 1.0 - MVP está 100% funcional y listo para usar
- 🎮 4 Pantallas Completas: Splash, Home, Game, Result
- ➕ 20 Ejercicios de Sumas (números del 1 al 10)
- 🎯 Sistema de Opción Múltiple con feedback inmediato
- ⭐ Sistema de Puntos (10 puntos por respuesta correcta)
- 📊 Barra de Progreso visual durante el juego
- 🎉 Pantalla de Celebración con estadísticas completas
- 💪 Mensajes Motivacionales positivos
- 🎨 UI Colorida y Amigable pensada para niños
- ✨ Animaciones Suaves en todas las transiciones
- 🏗️ Clean Architecture (Domain, Data, UI, App)
- 📦 State Management con Zustand
- Splash Screen: Animación de bienvenida con logo (2.5s)
- Home Screen: Ver puntos acumulados y avatar del niño
- Game Screen: 20 ejercicios con feedback inmediato
- Result Screen: Estadísticas, celebración y opción de jugar de nuevo
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SPLASH │→ │ HOME │→ │ GAME │→ │ RESULT │
│ 🧮 │ │ 👶 Avatar │ │ ¿Cuánto es │ │ 🎉 │
│ KidsMath │ │ ⭐ Puntos │ │ 5 + 3? │ │ ¡Excelente! │
│ │ │ 🎮 Jugar │ │ [6][8][9][7]│ │ 18/20 ✅ │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
- React Native v0.83.1 - Framework para desarrollo móvil multiplataforma
- React v19.2.0 - Biblioteca de JavaScript para interfaces de usuario
- TypeScript v5.8.3 - Superset tipado de JavaScript
- React Navigation v7.x - Navegación entre pantallas
- Zustand v5.x - State management simple y efectivo
- Jest - Framework de testing
- ESLint - Linter para mantener calidad de código
El proyecto sigue Clean Architecture con separación clara de responsabilidades:
src/
├── app/ # Capa de presentación
│ ├── navigation/ # Configuración de navegación
│ ├── screens/ # Pantallas de la app
│ └── App.tsx
│
├── domain/ # Lógica de negocio
│ ├── models/ # Entidades y tipos
│ └── usecases/ # Casos de uso
│
├── data/ # Capa de datos
│ ├── exercises/ # Datos de ejercicios (JSON)
│ └── repository/ # Implementación de repositorios
│
├── ui/ # Componentes reutilizables
│ └── components/ # ButtonBig, OptionCard, Avatar
│
├── state/ # Estado global
│ └── gameStore.ts # Zustand store
│
└── utils/ # Utilidades
└── soundPlayer.ts
Antes de comenzar, asegúrate de tener instalado:
- Node.js >= 20
- npm o yarn
- Xcode (para desarrollo iOS en macOS)
- Android Studio (para desarrollo Android)
- CocoaPods (para dependencias iOS)
npm installcd ios && pod install && cd ..# iOS (recomendado)
npm run ios
# Android
npm run android🎯 Ver guía detallada en: QUICK_START.md
npm start
# o
npx react-native startnpm run android
# o
npx react-native run-androidnpm run ios
# o
npx react-native run-iosnpm start- Inicia el servidor de desarrollo Metronpm run android- Ejecuta la aplicación en Androidnpm run ios- Ejecuta la aplicación en iOSnpm test- Ejecuta las pruebas con Jestnpm run lint- Ejecuta el linter para verificar la calidad del código
# Crear nuevo proyecto React Native con TypeScript
npx @react-native-community/cli@latest init KidsMathApp --version 0.83.1
cd KidsMathApp# Instalar react-native-safe-area-context
npm install react-native-safe-area-context# Crear archivo .gitignore personalizado para React Native
# (incluye node_modules, builds, archivos del sistema, etc.)
# Inicializar repositorio Git (si no estaba inicializado)
git init
# Agregar todos los archivos al staging area
git add .
# Crear commit inicial
git commit -m "Initial commit: React Native Kids Math App"
# Conectar con repositorio remoto en GitHub
git remote add origin https://github.com/JhohellsDL/KidsMathApp.git
# Verificar la configuración del remote
git remote -v
# Subir el código a GitHub
git push -u origin mainSi tienes problemas de autenticación al hacer push:
# Incluir el token en la URL del remote (reemplazar YOUR_TOKEN con tu token)
git remote set-url origin https://YOUR_TOKEN@github.com/JhohellsDL/KidsMathApp.git
# Hacer push
git push -u origin main
# Por seguridad, restaurar la URL original después del push
git remote set-url origin https://github.com/JhohellsDL/KidsMathApp.git# Cambiar a SSH (si tienes configuradas las claves SSH)
git remote set-url origin git@github.com:JhohellsDL/KidsMathApp.git
git push -u origin mainKidsMathApp/
├── src/ # Código fuente
│ ├── app/ # Capa de aplicación
│ │ ├── navigation/ # Navegación
│ │ │ └── AppNavigator.tsx
│ │ ├── screens/ # Pantallas
│ │ │ ├── SplashScreen.tsx
│ │ │ ├── HomeScreen.tsx
│ │ │ ├── GameScreen.tsx
│ │ │ └── ResultScreen.tsx
│ │ └── App.tsx
│ │
│ ├── domain/ # Lógica de negocio
│ │ ├── models/ # Modelos de datos
│ │ │ └── Exercise.ts
│ │ └── usecases/ # Casos de uso
│ │ └── getExercises.ts
│ │
│ ├── data/ # Capa de datos
│ │ ├── exercises/ # Datos de ejercicios
│ │ │ └── sums_1_10.json
│ │ └── repository/ # Repositorios
│ │ └── ExerciseRepository.ts
│ │
│ ├── ui/ # Componentes UI
│ │ └── components/
│ │ ├── ButtonBig.tsx
│ │ ├── OptionCard.tsx
│ │ └── Avatar.tsx
│ │
│ ├── state/ # Estado global
│ │ └── gameStore.ts
│ │
│ └── utils/ # Utilidades
│ └── soundPlayer.ts
│
├── android/ # Código nativo Android
├── ios/ # Código nativo iOS
├── __tests__/ # Tests
├── App.tsx # Entry point
├── package.json
├── tsconfig.json
├── PLANEAMIENTO.md # Documento de planeación
├── MVP_READY.md # Estado del MVP
├── QUICK_START.md # Guía de inicio rápido
├── MEJORAS_OPCIONALES.md # Roadmap de mejoras
└── README.md # Este archivo
- ✅ Refuerzo Positivo: Solo mensajes motivacionales
- ❌ Sin Penalizaciones: Los errores son oportunidades de aprender
- 🎨 Visual First: Mínimo texto, máximo contenido visual
- 🎮 Gamificación: Puntos, progreso y celebraciones
- 👶 Child-Friendly: Botones grandes, colores alegres
- 🏗️ Clean Architecture: Separación clara de capas
- 📦 Data-Driven: Ejercicios en JSON, fácil de extender
- 🔒 Type-Safe: TypeScript estricto en todo el proyecto
- ⚡ Performance: Animaciones nativas, código optimizado
- 🧪 Testeable: Arquitectura facilita unit testing
# Limpiar caché de npm
npm start -- --reset-cache
# Reinstalar node_modules
rm -rf node_modules
npm install# Limpiar build de Android
cd android
./gradlew clean
cd ..
# Reconstruir
npm run android# Limpiar build de iOS
cd ios
rm -rf build
rm -rf Pods
rm Podfile.lock
bundle exec pod install
cd ..
# Reconstruir
npm run ios# Limpiar todo
rm -rf node_modules
rm -rf ios/Pods
rm -rf ios/build
rm -rf android/build
rm -rf android/app/build
# Reinstalar todo
npm install
cd ios && bundle exec pod install && cd ..
# Limpiar caché de Metro
npm start -- --reset-cache- ✅ 4 pantallas funcionales
- ✅ 20 ejercicios de sumas
- ✅ Sistema de puntos
- ✅ Animaciones básicas
- ✅ Feedback positivo
- Persistencia con AsyncStorage
- Sonidos con react-native-sound
- Más ejercicios de sumas
- Nueva categoría: Restas
- Sistema de badges/logros
- Más animaciones
- Mini-juegos adicionales
📖 Ver roadmap completo en: MEJORAS_OPCIONALES.md
- 📋 PLANEAMIENTO.md - Planeación completa del proyecto
- ✅ MVP_READY.md - Estado actual del MVP
- ⚡ QUICK_START.md - Guía de inicio rápido
- 🚀 MEJORAS_OPCIONALES.md - Próximas mejoras
Este proyecto es de código privado.
JhohellsDL
- GitHub: @JhohellsDL
- Repositorio: KidsMathApp
Este proyecto demuestra:
- ✅ Clean Architecture en React Native
- ✅ TypeScript avanzado con tipos estrictos
- ✅ State management con Zustand
- ✅ Navegación con React Navigation
- ✅ Animaciones nativas con Animated API
- ✅ Diseño UI/UX para niños
- ✅ Repository pattern
- ✅ Data-driven architecture
Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría realizar.
Gracias a la comunidad de React Native y a todos los que hacen posible el desarrollo móvil con JavaScript.
⭐️ Si este proyecto te resulta útil, ¡no olvides darle una estrella en GitHub!
Estado: ✅ MVP COMPLETADO | Última actualización: Enero 2026