2x12 | Charlando con los Androides de Mapbox
Resumen
Antonio Zugaldía y Pablo Guardiola comparten su experiencia desarrollando un SDK de navegación, discutiendo desde la arquitectura técnica y los procesos de testing hasta las diferencias fundamentales con el desarrollo de aplicaciones de consumo.
Temas principales:
- ¿Qué es Mapbox?: Explicamos el modelo de negocio B2B de Mapbox, que provee herramientas a otros desarrolladores sin competir con aplicaciones de consumo. Sus tres pilares principales son Mapas, Búsqueda y Navegación.
- Mapbox vs. Google Maps: Discutimos las diferencias clave, incluyendo el modelo de negocio sin publicidad, el enfoque en la privacidad del usuario, y el alto nivel de personalización que ofrece Mapbox Studio, permitiendo a los clientes adaptar los mapas a su identidad de marca.
- Desarrollo de SDK vs. Producto: Profundizamos en los retos de crear APIs públicas, donde la estabilidad, la documentación y la facilidad de uso son primordiales. Destacamos la importancia de no introducir “breaking changes” y cómo se gestiona la evolución de la API a través de un versionado semántico (SemVer).
- Arquitectura y Tecnología: El SDK de Mapbox se apoya en un núcleo nativo escrito en C++ para maximizar el rendimiento y la compatibilidad multiplataforma (Android, iOS, web, etc.), con puentes específicos para cada plataforma. Esto es clave para funcionalidades complejas como el renderizado de mapas y la navegación offline.
- Proceso de Release y Roadmap: Describimos el “release train”, un ciclo de lanzamientos con builds internas semanales y versiones estables cada seis semanas. Esto permite una iteración rápida y prioriza la calidad, ya que una funcionalidad que no está lista “pierde el tren” hasta el siguiente ciclo.
- Testing en el mundo real: Mapbox realiza un testing exhaustivo que va más allá de las pruebas unitarias y de integración. Utilizan su propia aplicación interna para que los empleados la usen en su día a día (“dogfooding”) y cuentan con una flota de conductores que prueban el SDK en condiciones reales en la carretera.
- Capacidades Offline: Gracias a su arquitectura nativa, el SDK puede descargar mapas y datos de enrutamiento para funcionar completamente sin conexión a internet. Esto es vital para casos de uso como la logística o la navegación en áreas con poca cobertura.
- Adaptación a Android 12: Mis invitados explican cómo abordaron los cambios en los permisos de localización, como la ubicación aproximada, y las actualizaciones en los
PendingIntenty las notificaciones para garantizar la compatibilidad y el buen funcionamiento del SDK en la última versión del sistema operativo.