Sudoku Play
Aplicación móvil completa de Sudoku con sistema de progresión, modo aventura con 5,900 niveles, duelos 1v1, funcionalidades sociales y monetización profesional. Arquitectura offline-first con sincronización por event sourcing. One-man project publicado en ambas tiendas.
6,000
Puzzles únicos
5,900
Niveles Aventura
590
Mundos
13
Pantallas
14
Tipos de eventos
v1.0.13
Versión actual
Características principales
Core Gameplay
Tablero 9x9 Responsive
Mapeo táctil preciso respetando safe areas en todos los dispositivos.
Input por Drag
Mantener presionado 0.5s activa modo arrastre para colocar múltiples números deslizando por celdas.
Dos Modos de Juego
Clásico (feedback inmediato, vidas limitadas) y Purista (sin validación, sin ayudas).
Pistas Inteligentes
Identifican celdas pivote con cooldown de 1:30 minutos.
Undo Ilimitado + Autoguardado
Historial completo de movimientos. Autoguardado cada 10s, al pausar y al salir.
Modo Aventura
5,900 Niveles
590 mundos organizados en 6 capítulos con dificultad progresiva.
Mapa estilo Candy Crush
Camino sinuoso con nodos interactivos y niveles Boss.
Sistema de Corazones y Estrellas
Regeneración por tiempo, ads para recuperar, puertas que requieren estrellas acumuladas.
Progresión y Engagement
Economía Completa
XP, niveles de usuario, monedas in-game con multiplicadores por cadena.
Streaks con Shields
Rachas diarias con bonus crecientes y protección de racha.
Daily Challenge + Retos
Puzzle diario igual para todos, retos diarios y semanales con recompensas.
Sistema de Logros
Achievements con pantalla dedicada y tracking de progreso.
Social y Duelos
Sistema de Amigos
Códigos únicos de 6 caracteres, solicitudes, leaderboard con múltiples métricas.
Duelos 1v1
Mismo puzzle para ambos, apuestas con monedas, ganador por tiempo + errores.
Anti-trampa en Duelos
Sin pistas, sin pausa, sin guardado automático. Escrow de monedas server-side.
Monetización
Ads (AdMob)
Banner en Home (nunca en gameplay), interstitial entre partidas, rewarded para pistas y monedas.
Suscripción Premium
$0.99/mes o $9.99/año: sin ads, +50% monedas, 5 pistas por partida, temas exclusivos, corazones infinitos.
In-App Purchases
Integrado con App Store Connect y Google Play Console via react-native-iap v14.
Stack Tecnológico
Frontend / Mobile
React Native 0.81
Framework base para Android e iOS
Expo SDK 54
Toolchain, builds y OTA updates
TypeScript 5.9
Tipado estático en todo el proyecto
Zustand 5
State management con persistencia
React Navigation 7
Navegación stack-based
Backend
Supabase
Auth, DB, Edge Functions, RLS
PostgreSQL
Schemas global + sudoku
Deno Edge Functions
sync-events, validate-completion
Row Level Security
Seguridad a nivel de fila
Servicios Externos
Google AdMob
Banner, interstitial, rewarded
Firebase Crashlytics
Crash reporting en tiempo real
Firebase Cloud Messaging
Push notifications
EAS Build + Update
Cloud builds y OTA updates
Almacenamiento Local
SQLite (expo-sqlite)
6,000 puzzles pre-cargados offline
AsyncStorage
Estado, config, progreso
expo-secure-store
Device ID y datos sensibles cifrados
Librerías principales
Decisiones de Arquitectura
Event Sourcing para Offline
Cada acción se registra como evento inmutable. El servidor los procesa en orden y es la fuente de verdad. Permite sincronización idempotente, auditoría completa y merge seguro multi-dispositivo.
Offline-First Real
6,000 puzzles en SQLite local, estado en memoria y AsyncStorage, cola de eventos offline. Funciona 100% sin internet.
"Gameplay Sagrado" — Cero I/O
Durante partida activa, cero operaciones de red o disco. Todo en RAM. Persistencia diferida con InteractionManager.runAfterInteractions(). 60 FPS garantizados.
Servidor como Fuente de Verdad
El cliente nunca es confiable para monedas, XP o compras. En duelos, las recompensas las maneja exclusivamente el servidor.
Sync con Condiciones Inteligentes
Evalúa WiFi vs datos, nivel de batería, modo ahorro y cantidad de eventos antes de sincronizar.
Anti-Cheat Silencioso
Análisis de patrones de juego, firma HMAC-SHA256, shadow bans sin alertar al tramposo.
Desafíos Técnicos Resueltos
Renderizado de Notas en Samsung One UI
Problema: flexWrap difiere en Samsung, notas 3×3 se renderizaban mal.
Solución: Estructura explícita de 3×3 Views anidadas con dimensiones fijas.
→ Renderizado pixel-perfect en +50% del mercado Android.
Crashes de Background Fetch en Android
Problema: expo-task-manager causa NullPointerException en Samsung antes de inicializar JS.
Solución: Sync al volver a foreground en vez de background fetch.
→ Eliminación de crashes en producción.
Google Play Services Fallback
Problema: App crasheaba en Huawei/emuladores sin Play Services.
Solución: Servicio con detección de disponibilidad e imports dinámicos.
→ Funciona en todos los dispositivos.
IAP Plugin Missing en iOS
Problema: react-native-iap no incluido en plugins de app.json, excluyendo entitlement.
Solución: Plugin agregado + nuevo build nativo.
→ Suscripciones habilitadas en iOS.
Sync Multi-Dispositivo
Problema: Merge de estado genera conflictos en monedas entre dispositivos.
Solución: Event sourcing con UUID por evento. Servidor recalcula estado.
→ Cero pérdida de datos, auditoría completa.
Economía de Duelos
Problema: Math.max() para merge permitía exploits de monedas.
Solución: Escrow de monedas al crear/aceptar. Servidor autoritario.
→ Economía protegida contra exploits.
Performance en Partida
Problema: Persistencia y sync causaban micro-stutters.
Solución: "Gameplay sagrado": estado en RAM, autoguardado con debounce, I/O diferido.
→ 60 FPS constantes, autoguardado imperceptible.
Verificación AdMob
Problema: AdMob requería verificación de dominio para servir ads.
Solución: app-ads.txt en GitHub Pages + URL en ambas consolas.
→ Monetización activa en ambas plataformas.
Estado del Proyecto — 13/13 Fases
Fase 1: Setup e Infraestructura
Fase 2: Generador de Puzzles
Fase 3: Core del Juego
Fase 4: Sistemas de Progresión
Fase 5: Autenticación y Sync
Fase 6: Monetización
Fase 7: Polish y Testing
Fase 8: Notificaciones y Onboarding
Fase 9: Seguridad y Anti-Cheat
Fase 10: Sincronización Offline
Fase 11: Optimización y Rendimiento
Fase 12: Sistema de Amigos
Fase 13: Duelos 1v1
En Producción
- Publicada en Google Play y App Store
- 2 Edge Functions desplegadas
- AdMob verificado y activo
- Crashlytics reportando en tiempo real
- EAS Update para OTA deployments
Pendiente / En Progreso
- Suscripciones IAP en ambas tiendas
- Supabase Realtime para duelos
Logros Destacados
Proyecto individual completo: diseño, desarrollo, publicación y mantenimiento en ambas tiendas
6,000 puzzles generados con algoritmo propio de backtracking en Python, 6 niveles de dificultad
5,900 niveles de Modo Aventura con mundos Boss, corazones y sistema de estrellas
Event Sourcing implementado desde cero con idempotencia, auditoría y detección de anomalías
Anti-cheat con análisis de patrones, HMAC-SHA256 y shadow bans silenciosos
Sistema social completo: amigos con códigos únicos, leaderboards, duelos 1v1 con apuestas
Offline-first real: 6,000 puzzles locales, estado en memoria, cola de eventos offline
"Gameplay sagrado" con cero I/O en partida activa, 60 FPS garantizados
Cross-platform con una sola codebase: React Native + Expo con builds nativos via EAS
13 fases de desarrollo completadas en ~3 semanas, desde setup hasta publicación
Información adicional
Idiomas
Español + Inglés
Temas
Dark + desbloqueables
Puzzles
6,000 únicos
Modos
5 (Clásico, Purista, Daily, Duelos, Aventura)
Base de Datos
Schema global
Perfiles de usuario, preparado para múltiples juegos futuros.
Schema sudoku
Catálogo, completaciones, estadísticas, amigos, duelos, eventos, aventura.
Visión a Futuro
La arquitectura está preparada para evolucionar hacia una plataforma multi-juego con perfil global compartido, desafíos cross-game, leaderboards globales, eventos temporales y torneos. El schema global ya soporta múltiples aplicaciones conectadas.