Saltar al contenido principal
Volver a proyectos
Pantalla principal de Rendímetro mostrando el panel de control del vehículo
En desarrollo

Rendímetro

Ver sitio

El origen del proyecto

Rendímetro nació de una necesidad personal: saber cuánto costaba cada viaje y por qué el gasto en combustible se descontrolaba mes a mes. La mayoría de las aplicaciones existentes exige registrar el kilometraje de forma manual o no considera factores locales clave, como los precios oficiales de combustible, que en Chile cambian cada jueves.

La solución

Diseñé Rendímetro como una aplicación nativa con React Native y Expo, con arquitectura local-first: todos los datos se guardan en el dispositivo mediante MMKV, sin cuenta ni servidor. La app registra los viajes con GPS en segundo plano y calcula el costo de cada trayecto con los precios vigentes de la CNE, con una interfaz ágil y minimalista.

Características principales

  • Detección automática de viajes: combina la API de actividad física del teléfono con el GPS para iniciar y pausar el registro sin intervención del usuario.
  • Costos en tiempo real: cálculo por comuna con los precios oficiales de la CNE, actualizados cada jueves a las 06:00.
  • Gestión de gastos: combustible, mantención, seguros, peajes y otros conceptos, con totales por mes y categoría.
  • Reportes en PDF: exportación del historial con distancia, costo y tipo de viaje para cada trayecto.
  • Panel con clima: meteorología en tiempo real con Open-Meteo para planificar cada ruta.

Retos técnicos

Detección de viajes en segundo plano

El mayor desafío fue resolver el problema del huevo y la gallina de la detección: sin GPS activo la velocidad era siempre cero, así que el viaje nunca comenzaba. La solución fue separar los estados de la máquina de detección: mientras busca, corre un monitor de GPS de baja precisión que solo escribe la velocidad; cuando confirma el viaje, conmuta a alta precisión para grabar la ruta.

Permisos en Android

Android encadena permisos difíciles de obtener: ubicación en primer y segundo plano, actividad física y notificaciones. Muchos usuarios los rechazan y la app queda sin funciones. Implementé un proceso de incorporación que presenta cada permiso en el momento adecuado, explica para qué sirve y ofrece un acceso directo a los ajustes del sistema cuando alguno se deniega.

Almacenamiento local de alto rendimiento

Construí un motor documental NoSQL sobre MMKV: las colecciones se leen de forma síncrona, de modo que el panel carga al instante incluso con miles de registros y la app funciona sin conexión. Los datos se exportan e importan como JSON mediante un respaldo local.

Próximos pasos

La hoja de ruta incluye la publicación en Google Play, la sincronización opcional en la nube para respaldar los datos entre dispositivos y las notificaciones push al guardar un viaje de forma automática.