Mappets
Mappets es una aplicación Android centrada en la movilidad, pensada para ayudar a planificar trayectos de forma más eficiente y personalizada. Combina el cálculo de rutas, información del trayecto, estimación de costes y datos guardados del usuario para crear una experiencia completa en torno a los desplazamientos del día a día.
Sobre la aplicación
El proyecto se desarrolló como un producto de software completo siguiendo prácticas ATDD, y se creó para una asignatura universitaria de ingeniería del software. Su objetivo es dar a los usuarios una herramienta práctica para planificar rutas teniendo en cuenta la mejor opción según el modo de transporte, el esfuerzo y el presupuesto.
Funcionalidades principales
Planificación avanzada de rutas
- Los usuarios pueden calcular rutas entre dos puntos.
- La app admite distintos modos de movilidad: vehículo de combustión, vehículo eléctrico, bicicleta y a pie.
- Las rutas pueden optimizarse por velocidad, distancia o coste.
Detalles del trayecto
- La app muestra la ruta sobre un mapa.
- Ofrece la distancia total y la duración estimada del trayecto.
- Presenta el itinerario de forma clara y visual.
Estimación de coste y esfuerzo
- La app estima el coste del trayecto en euros para vehículos a motor.
- También calcula el esfuerzo físico en rutas a pie o en bicicleta, como las calorías quemadas.
- Esto hace que la experiencia sea útil tanto para decisiones económicas como orientadas a la salud.
Gestión de datos personalizados
- Los usuarios pueden guardar y gestionar lugares favoritos, vehículos y rutas.
- Los datos persisten entre sesiones gracias a la integración con Firebase.
- La app facilita reutilizar las preferencias de viaje a lo largo del tiempo.
Integraciones externas
- La aplicación se conecta con APIs de terceros para geocodificación, cálculo de rutas y datos de coste energético.
- Esto mantiene la información de las rutas actualizada y relevante en tiempo real.
Tecnología y arquitectura
- Frontend nativo de Android construido con Kotlin.
- Jetpack Compose para la interfaz.
- Hilt para la inyección de dependencias.
- Firebase para autenticación y persistencia en la nube.
- Mapbox SDK para la visualización de mapas.
- Coroutines y Flows para la lógica asíncrona y reactiva.
Enfoque de diseño
El proyecto sigue principios de arquitectura limpia y una estructura MVVM para mantener el código modular, mantenible y testable. La app también usa abstracciones de repositorio y lógica basada en el patrón Strategy para el cálculo de costes.