Este repositorio contiene una aplicación móvil nativa para Android desarrollada en Kotlin, diseñada para visualizar y explorar datos del planeta Marte en tiempo real. El proyecto integra la API oficial de la NASA (Mars Rover Photos / Insight) para ofrecer una interfaz dinámica donde los usuarios pueden consultar las últimas expediciones fotográficas y datos científicos capturados en la superficie marciana.
- Consumo de API de la NASA: Integración con servicios REST para la recuperación de metadatos e imágenes de los Rovers (Curiosity, Opportunity, Spirit).
- Galería Multimedia Optimizada: Implementación de visualización de imágenes de alta resolución con carga asíncrona para no penalizar el rendimiento del dispositivo.
- Filtrado Inteligente: Capacidad de consultar imágenes por fecha terrestre, Sol marciano o tipo de cámara de los vehículos de exploración.
- Interfaz Temática (Space Design): Diseño de UI/UX personalizado con una estética orientada a la exploración espacial y ciencia.
- Lenguaje: Kotlin
- Plataforma: Android SDK (Nativo)
- Conectividad: Retrofit 2 / OkHttp
- Procesamiento de Imágenes: Coil.
- Arquitectura: MVVM.
El desarrollo de esta aplicación enfrentó retos específicos de las aplicaciones que manejan contenido multimedia masivo:
- Gestión de Memoria (Caching): Se implementó una estrategia de almacenamiento en caché para las imágenes de Marte, permitiendo una navegación fluida y reduciendo el consumo de datos móviles del usuario al no re-descargar contenido ya visualizado.
- Manejo de JSON Complejos: La respuesta de la API de la NASA puede ser extensa; se diseñaron Data Classes optimizadas en Kotlin para deserializar solo la información relevante (ID, cámara, fecha, URL).
- Peticiones Asíncronas: Uso de Coroutines para asegurar que la descarga de datos científicos se realice en segundo plano, manteniendo la interfaz de usuario reactiva en todo momento.
-
Clonar el repositorio:
git clone [https://github.com/longaresf/mars-exploration-hub.git](https://github.com/longaresf/mars-exploration-hub.git)
-
Abrir en Android Studio: Importa el proyecto y permite que Gradle sincronice las dependencias necesarias.
-
Configuración de API Key (Opcional):
El proyecto utiliza la clave DEMO_KEY de la NASA por defecto. Para límites de tasa más altos, puedes obtener tu propia clave en api.nasa.gov y reemplazarla en la configuración de la red.
-
Ejecución: Selecciona tu emulador o dispositivo físico y presiona Run.
✒️ Autor
Francisco Longares - Desarrollador Mobile & Entusiasta de la Ciencia de Datos - longaresf