Skip to content

Repository files navigation

Mental Math

Android SDK Target SDK Kotlin Compose License: GPL v3

🌐 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.


Get it on Google Play Download APK on GitHub

Key Features

  • 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.

Architecture & Tech Stack

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

Key Technologies

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

Build Requirements

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).

Steps to run locally

  1. Clone the repository:
    git clone https://github.com/NegK01/Mental-Math.git
  2. Open the project in Android Studio.
  3. Sync Gradle and run the app on an emulator or physical device with Android 8.0 (API 26) or higher.
./gradlew assembleDebug

Contributing

Contributions are welcome! If you wish to report a bug, propose an enhancement, or submit code, please review our Contribution Guide.


License

This project is distributed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for more details.



Mental Math - Español

Android SDK Target SDK Kotlin Compose Licencia: GPL v3

🌐 Idiomas: English | Español


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.


Disponible en Google Play Descargar APK en GitHub

Características Principales

  • 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.

Arquitectura y Stack Tecnológico

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

Tecnologías Clave

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

Requisitos de Compilación

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).

Pasos para ejecutar localmente

  1. Clona el repositorio:
    git clone https://github.com/NegK01/Mental-Math.git
  2. Abre el proyecto en Android Studio.
  3. Sincroniza Gradle y ejecuta la app en un emulador o dispositivo físico con Android 8.0 (API 26) o superior.
./gradlew assembleDebug

Contribución

¡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.


Licencia

Este proyecto se distribuye bajo la licencia GNU General Public License v3.0 (GPLv3). Consulta el archivo LICENSE para más detalles.

About

Native Android app for mental math training built with Kotlin, Jetpack Compose (Material 3), and Clean Architecture + MVVM. Features local Room persistence, custom design tokens, and fluid animations. Published on Google Play.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages