Skip to content

Repository files navigation

Calculadora GRL para FC Mobile: FCMetrix

License: MIT Kotlin Android FOSS Release

Calculadora ligera y moderna para Android, diseñada específicamente para calcular y optimizar el GRL (Global Rating Level) en FC Mobile. La aplicación está desarrollada íntegramente en Kotlin utilizando Jetpack Compose (Material 3) para ofrecer una interfaz nativa, fluida y reactiva.


Características

  • Cálculo automático del GRL global: a partir de los 11 titulares (y hasta 7 suplentes).
  • Gestión de titulares y suplentes: añade o elimina suplentes dinámicamente con límites reglamentarios.
  • Rango rápido: aplica el rango deseado a todos los jugadores con un solo toque (0‑5).
  • Gestión de Plantillas (Squad Management):
    • Guarda múltiples alineaciones personalizadas con nombre propio.
    • Carga y alterna entre diferentes plantillas guardadas al instante.
    • Elimina alineaciones con confirmación de seguridad.
    • Persistencia local reactiva mediante Room Database.
  • Copia de Seguridad y Restauración JSON (Backup & Restore):
    • Exporta todas tus plantillas y configuraciones en archivos .json portables.
    • Importa backups de forma segura con validación de esquema y gestión de duplicados.
  • Pantalla de Ajustes Dedicada (Settings):
    • Control de copias de seguridad locales y restauración.
    • Opciones de personalización de tema y Color Dinámico (Material You).
    • Resumen del sistema e información de versión.
  • Sugerencias inteligentes y caminos de optimización:
    • Muestra en paralelo las dos vías posibles para subir de nivel: Vía GRL Base vs. Vía Rango.
    • Identifica y destaca visualmente el Camino más rápido para alcanzar el próximo OVR.
  • Información de precisión: promedios decimales exactos de GRL Base y Rango (ej. 125.81 • 4.90) para comprender el algoritmo de redondeo de EA Sports.
  • Exportación y Compartir Tarjeta de Resultados:
    • Vista previa modal de la tarjeta de resumen.
    • Guardado en alta calidad en la galería del dispositivo (Pictures/FCMetrix).
    • Compartir imagen directamente en apps de mensajería y redes sociales mediante FileProvider.
  • Material You y Color Dinámico: soporte para paletas dinámicas basadas en el fondo de pantalla (Android 12+), con toggle manual persistente en DataStore.
  • Ícono Adaptativo & Themed Icons (Monocromo):
    • Soporte completo para íconos adaptativos y tema monocromático dinámico en Android 13+ (API 33).
  • Accesibilidad (TalkBack): descripciones semánticas enriquecidas para lectores de pantalla en todas las acciones, tarjetas y listas.
  • Rendimiento optimizado: integración de Baseline Profiles para tiempos de inicio inmediatos y scroll sin jank.
  • Funciona 100% Offline: todos los cálculos y datos se procesan en el dispositivo sin necesidad de conexión a Internet.
  • Soporte multi-idioma: Español e Inglés con detección automática.
  • Privacidad y Ética:
    • Sin permisos sensibles: No solicita acceso a cámara, ubicación ni contactos.
    • Sin telemetría ni rastreo: Cero analíticas, cero rastreadores. Tu actividad es privada.
    • Código abierto (FOSS): Totalmente transparente y auditable por la comunidad.

Capturas de pantalla

FCMetrix - Estado Inicial FCMetrix - Progreso de Titulares FCMetrix - Cálculo de GRL y Sugerencias FCMetrix - Plantilla Completa FCMetrix - Guardar Plantilla

FCMetrix - Color Dinámico Material You FCMetrix - Gestión de Plantillas Guardadas FCMetrix - Opciones y Ajustes FCMetrix - Modal Vista Previa (Color Dinámico) FCMetrix - Modal Vista Previa y Compartir


Lógica de cálculo

El GRL Global se calcula utilizando por separado el promedio del GRL Base y el promedio del Rango.

Fórmula

$$\text{GRL Global} = \lceil\text{Promedio GRL Base}\rceil + \lceil\text{Promedio Rango}\rceil$$

Donde:

  • Promedio GRL Base $= \frac{\sum (\text{GRL}_i - \text{Rango}_i)}{N}$
  • Promedio Rango $= \frac{\sum \text{Rango}_i}{N}$

El redondeo hacia arriba ($\lceil x \rceil$ / ceil) se aplica de forma independiente a cada promedio antes de realizar la suma final.

Reglas de negocio

  • $N$ = total de jugadores con GRL asignado.
  • Mínimo de jugadores: 11 (si faltan titulares, no se calcula el GRL Global).
  • Máximo de jugadores: 18 (11 titulares + hasta 7 suplentes).
  • Límites de GRL: 47 – 150.
  • Límites de Rango: 0 – 5.
  • Los jugadores sin GRL cargado no participan del cálculo.
  • Prioridad de recomendación: En caso de empate en la cantidad de puntos necesarios para subir de nivel entre GRL Base y Rango, se prioriza y recomienda la mejora de GRL Base.

Stack tecnológico

Tecnología Versión / Uso
Kotlin Lenguaje principal del proyecto (Kotlin 2.2.10)
Jetpack Compose UI declarativa moderna basada en Material 3
Room Database Persistencia SQLite local para alineaciones guardadas
DataStore Preferences Almacenamiento reactivo de configuraciones (Color Dinámico)
Kotlinx Serialization Serialización JSON segura para copias de seguridad portables
Kotlin Coroutines & Flow Programación asíncrona reactiva con StateFlow
AndroidX Lifecycle Arquitectura ViewModel con retención de estado
KSP Kotlin Symbol Processing para Room y generadores de código
Baseline Profiles Precompilación de rutas críticas para inicio y render ultra-rápido
JUnit 4 & Espresso Pruebas unitarias e instrumentadas automatizadas
GitHub Actions CI/CD Automatización de Quality Gates, tests, lint y releases firmadas
Gradle (Kotlin DSL) Sistema de compilación y gestión de dependencias

Requisitos y Compilación

  • Android Studio: Ladybug / Meerkat o superior.
  • Android SDK: minSdk 24 (Android 7.0+), targetSdk 35 (Android 15), compileSdk 37.
  • JDK: Java 17 / 21.
  • Compilar Debug APK:
    ./gradlew assembleDebug
  • Compilar Release APK:
    ./gradlew assembleRelease
  • Ejecutar Tests Unitarios:
    ./gradlew testDebugUnitTest
  • Sincronizar Harness de Agentes:
    ./gradlew syncHarness

Licencia

Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.


Autor

KveldGitHub

About

FCMetrix — Calculadora de GRL para FC Mobile. Ligera, moderna y 100% FOSS. Sin permisos, sin rastreo, sin anuncios.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages