Aplicación móvil multiplataforma para aprender y practicar ajedrez mediante partidas offline, inteligencia artificial, problemas tácticos y variantes jugables. Está desarrollada con React Native y TypeScript, con integraciones nativas para Android e iOS.
Estado: proyecto personal en desarrollo. Las partidas offline, los problemas y el minijuego con barreras son funcionales; autenticación, juego online y persistencia permanente siguen pendientes.
| Ruta | Contenido técnico |
|---|---|
App.tsx |
Navegación principal, menús, estados y composición de pantallas |
src/screens/ |
Partida clásica, problemas tácticos, minijuegos y flujos visuales |
src/chess/ |
Lógica del bot y evaluación de posiciones |
src/levels/ |
Carga, validación y motor de problemas de bolsillo |
niveles/ |
Más de 400 posiciones tácticas en JSON |
android/ |
Proyecto Android, módulo de sonido en Kotlin y recursos nativos |
ios/ |
Proyecto iOS y configuración en Swift |
tools/ |
Generadores y analizadores de niveles |
__tests__/ |
Pruebas de renderizado y validación de soluciones |
- Partida clásica offline contra bot con dificultad configurable por ELO.
- Elección de piezas blancas, negras o aleatorias.
- Reglas, movimientos legales y estados de partida mediante Chess.js.
- Capturas, promoción, jaque, jaque mate, tablas e historial de movimientos.
- Pistas y reconocimiento básico de aperturas.
- Integración de Stockfish y un motor alternativo escrito en TypeScript.
- Catálogo de más de 400 problemas tácticos con distintos tamaños y dificultades.
- Minijuego funcional de ajedrez con barreras.
- Animaciones, recursos visuales y sonidos nativos de movimiento, captura y jaque.
- Herramientas para generar, medir similitud y validar niveles.
- Pruebas automatizadas con Jest.
| Área | Tecnología |
|---|---|
| Lenguaje principal | TypeScript y TSX |
| Aplicación móvil | React 19 y React Native 0.85 |
| Reglas de ajedrez | Chess.js |
| Inteligencia artificial | Stockfish y motor TypeScript propio |
| Android | Kotlin, Gradle y Hermes |
| iOS | Swift y CocoaPods |
| Interfaz | Animated, StyleSheet, SVG, PNG y Lucide Icons |
| Listas | Shopify FlashList |
| Pruebas | Jest y React Test Renderer |
| Datos | JSON |
| Herramientas | npm, Metro, Babel, ESLint y Prettier |
Requisitos principales:
- Node.js 22.13 o superior.
- Entorno de React Native configurado.
- Android Studio/SDK para Android.
- Xcode y CocoaPods para iOS.
npm install
npm startEn otra terminal:
npm run androidPara iOS, desde macOS:
bundle install
bundle exec pod install --project-directory=ios
npm run iosnpm test -- --runInBand
npx tsc --noEmit
npm run check:level-similarityDurante la preparación del portafolio, TypeScript terminó sin errores y las pruebas disponibles finalizaron correctamente.
Las evidencias están en docs/screenshots. Incluyen inicio, autenticación visual, menú, partida clásica, problemas, catálogo, minijuegos y ajedrez con barreras.
- Autenticación real e inicio con Google.
- Juego online entre usuarios.
- Backend y almacenamiento permanente de progreso.
- Estadísticas, recompensas y desafíos diarios.
- Tienda, suscripción e invitaciones.
- Partida rápida y variante de ajedrez explosivo.
- Paridad de algunas funciones nativas en iOS.
El repositorio conserva los recursos utilizados por la aplicación, pero excluye compilaciones, APK, cachés, toolchains locales y documentos personales. Antes de distribuir comercialmente el proyecto se deben revisar las licencias de imágenes, sonidos, fuentes y dependencias.
