🌐 Languages: English | Español
Mental Math is a native Android mobile application designed to train mental agility through fast-paced arithmetic calculations under pressure. The app is built from scratch following native Android architecture best practices using Jetpack Compose and Clean Architecture.
- Fast Calculation Rounds: Dynamic math challenges with instant feedback.
- 3 Difficulty Levels: Easy, Medium, and Hard (with combined operations, mathematical precedence, and positive integer validation).
- Statistics & History: Local records of completed games, average response times, and accuracy streaks (Best Streak).
- Operator Insights: Performance analysis focused on addition, subtraction, multiplication, and division.
- Dynamic Theme System: Multiple native visual themes including Light, Dark, OLED, Deep Teal, Nordic Frost, and Royal Dark.
- Native Multilingual Support: Full localization in Spanish and English with dynamic language switching.
- Immersive Edge-to-Edge Experience: Clean, distraction-free interface taking full advantage of the device screen.
The project is designed under Clean Architecture + MVVM principles, prioritizing native performance, component decoupling, and modularity without over-engineering.
mentalmath
├─ data # Room implementations (DAO, Entities), Mappers, and Repositories
├─ domain # Pure domain models (Question, GameRecord) and Business Logic (QuestionGenerator)
├─ presentation # ViewModels and UI States (StateFlow, UI State)
├─ ui # Compose Components, Screens, and Design System (Design Tokens)
└─ navigation # Centralized navigation with Navigation Compose
| Category | Technology / Specification |
|---|---|
| Language | 100% Native Kotlin |
| UI Framework | Jetpack Compose with Material 3 components |
| Design System | Centralized design tokens (Tokens.kt) for Spacing, Radius, Opacity, and Motion |
| Local Persistence | Room Database with declared migrations |
| Concurrency | Kotlin Coroutines & StateFlow / SharedFlow |
| Navigation | Navigation Compose with hoisted state |
To build the project locally you need:
- Android Studio (Panda or newer recommended).
- JDK: Java 17 or Java 21.
- Android SDK:
compileSdk 37,minSdk 26. - Gradle: Configured via the included Gradle Wrapper (
./gradlew).
- Clone the repository:
git clone https://github.com/NegK01/Mental-Math.git
- Open the project in Android Studio.
- Sync Gradle and run the app on an emulator or physical device with Android 8.0 (API 26) or higher.
./gradlew assembleDebugContributions are welcome! If you wish to report a bug, propose an enhancement, or submit code, please review our Contribution Guide.
This project is distributed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for more details.
Mental Math es una aplicación móvil nativa para Android diseñada para entrenar la agilidad mental mediante ejercicios de cálculo aritmético rápido bajo presión. La aplicación está construida desde cero siguiendo prácticas de la arquitectura nativa en Android con Jetpack Compose y Clean Architecture.
- Rondas Rápidas de Cálculo: Desafíos matemáticos dinámicos con retroalimentación instantánea.
- 3 Niveles de Dificultad: Fácil, Medio y Difícil (con operaciones combinadas, jerarquía matemática y validación de resultados positivos exactos).
- Estadísticas e Historial: Registro local de partidas completadas, tiempos promedio de respuesta y rachas de aciertos (Best Streak).
- Insights por Operador: Análisis de rendimiento enfocado en suma, resta, multiplicación y división.
- Sistema de Temas Dinámicos: Múltiples temas visuales nativos incluyendo Light, Dark, OLED, Teal Profundo, Nordic Frost y Royal Dark.
- Soporte Multilingüe Nativo: Localización completa en Español e Inglés con cambio dinámico de idioma.
- Experiencia Inmersiva Edge-to-Edge: Interfaz limpia sin distracciones que aprovecha la pantalla completa del dispositivo.
El proyecto está diseñado bajo los principios de Clean Architecture + MVVM, priorizando el rendimiento nativo, el desacoplamiento de componentes y la modularidad sin sobreingeniería.
mentalmath
├─ data # Implementaciones de Room (DAO, Entities), Mappers y Repositorios
├─ domain # Modelos de dominio puros (Question, GameRecord) y Lógica de Negocio (QuestionGenerator)
├─ presentation # ViewModels y Estados de UI (StateFlow, UI State)
├─ ui # Componentes Compose, Pantallas y Sistema de Diseño (Design Tokens)
└─ navigation # Navegación centralizada con Navigation Compose
| Categoría | Tecnología / Especificación |
|---|---|
| Lenguaje | 100% Kotlin Nativo |
| UI Framework | Jetpack Compose con componentes Material 3 |
| Design System | Sistema de tokens de diseño centralizado (Tokens.kt) para Spacing, Radius, Opacity y Motion |
| Persistencia Local | Room Database con migraciones declaradas |
| Concurrencia | Kotlin Coroutines & StateFlow / SharedFlow |
| Navegación | Navigation Compose con estado hoisteado |
Para compilar el proyecto localmente necesitas:
- Android Studio (Panda o superior recomendado).
- JDK: Java 17 o Java 21.
- Android SDK:
compileSdk 37,minSdk 26. - Gradle: Configurado mediante el Gradle Wrapper incluido (
./gradlew).
- Clona el repositorio:
git clone https://github.com/NegK01/Mental-Math.git
- Abre el proyecto en Android Studio.
- Sincroniza Gradle y ejecuta la app en un emulador o dispositivo físico con Android 8.0 (API 26) o superior.
./gradlew assembleDebug¡Las contribuciones son bienvenidas! Si deseas reportar un error, proponer una mejora o enviar código, por favor revisa nuestra Guía de Contribución.
Este proyecto se distribuye bajo la licencia GNU General Public License v3.0 (GPLv3). Consulta el archivo LICENSE para más detalles.