Inspiration
Conozcan a Mario. Tiene un empleo matutino, pero necesita dinero urgente para la operación de su esposa. Entró a las apps de delivery buscando flexibilidad, pero se topó con un sistema opaco. Cuando la app le notifica que ganó $300 pesos, no le ha restado la gasolina, el desgaste de su moto, ni el tiempo que pasó esperando en el restaurante sin cobrar. Su ingreso bruto parece alto, pero su ganancia neta real es mínima.
En América Latina, hay más de 2 millones de trabajadores de plataformas, y los datos revelan una realidad dura: hasta el 35% del tiempo de un repartidor son 'tiempos muertos' no pagados. Nos inspiró la necesidad de devolverle el control a Mario. Queríamos crear una herramienta donde la tecnología trabajara para el repartidor, eliminando la ceguera financiera y las rutas ineficientes impuestas sin contexto.
What it does
t'oox (The Courier) es una aplicación de delivery invertida: el conductor nunca tiene que cazar pedidos. A través de un agente inteligente, el sistema construye y clasifica "bloques de rutas" alrededor de la posición real del repartidor.
En lugar de una sola ruta obligatoria, el conductor interactúa con nuestro asistente (vía voz o texto) con comandos naturales como: "Necesito hacer dinero, pero tengo que estar por mi casa en dos horas". El sistema traduce esto en 4 bloques de rutas personalizados, evaluando rentabilidad neta (descontando costos operativos como gasolina y desgaste del vehículo en tiempo real), tiempo, distancia y seguridad de la zona.
Una vez que el repartidor acepta un bloque, la app cambia a un modo de navegación continua. Cada 20 segundos, el sistema evalúa y ofrece integrar automáticamente nuevas órdenes convenientes a la ruta activa, dando al conductor solo unos segundos para declinar sin penalización, garantizando cero tiempos muertos.
How we built it
Construimos la aplicación móvil utilizando React Native y Expo, priorizando una experiencia nativa fluida y resiliente:
Independencia del Mapa: Diseñamos un sistema de renderizado de mapas personalizado utilizando mosaicos de OpenStreetMap compuestos en JavaScript con proyección Web Mercator y geometría dibujada con SVG. Esto nos permite funcionar sin depender económicamente de la API de Google Maps, garantizando que la app nunca se quede en negro por problemas de facturación o cuotas.
Navegación Turn-by-Turn Real: Integramos la API pública de OSRM (Open Source Routing Machine) para obtener geometría, ETA y listas de maniobras reales, sin necesidad de claves de API restrictivas.
Gestures y Animaciones Nativas: Implementamos interfaces complejas como el bottom sheet arrastrable y animaciones fluidas (como el radar de búsqueda y el overlay de nuevas órdenes) utilizando las APIs nativas de React Native para asegurar 60fps constantes sin re-renderizados innecesarios en la capa de JavaScript.
Gestión de Estado y Errores: Envolvimos el motor del mapa en error boundaries para que, incluso si falla la carga de un mosaico, la interfaz de usuario (botones, modales) permanezca completamente interactiva.
Challenges we ran into
El Ecosistema de Mapas en Android: El mayor reto fue liberarnos de la dependencia forzada de react-native-maps hacia el SDK de Google Maps en Android, el cual bloqueaba la pantalla completa si la API key no estaba autorizada. Tuvimos que construir nuestra propia solución de mapas rasterizados desde cero para mantener la app viva y funcional de forma autónoma.
Interacciones de Voz en Expo: Nos encontramos con que el paquete expo-av causaba crashes nativos en la versión actual del SDK (57). Tuvimos que diseñar e implementar toda la interfaz de usuario de escucha (las barras de ondas, detección de silencio y estados de procesamiento) pero "mockear" temporalmente el reconocimiento de voz (Speech-to-Text), dejando la arquitectura lista para migrar a expo-audio en el futuro.
Sincronización del "Overlay" Automático: Diseñar la experiencia del popup que ofrece una nueva orden cada 20 segundos fue complejo. Tenía que ser lo suficientemente intrusivo para ser notado (con vibración y alertas audibles), pero dar exactamente 7.5 segundos para reaccionar, manejando transiciones suaves sobre un fondo oscurecido sin interrumpir la navegación en curso.
Accomplishments that we're proud of
Transparencia Financiera Real: Logramos modelar un sistema que no le miente al repartidor. Mostrar la ganancia neta real, descontando automáticamente el combustible (basado en el perfil de su vehículo) es un cambio de paradigma en la industria.
Arquitectura Resiliente: Nos enorgullece que la aplicación pueda sobrevivir a fallas de red parciales (gracias al caché de mosaicos de 14 días) y a errores de renderizado sin mostrar jamás una "pantalla de la muerte" negra al usuario.
Traducción de Lenguaje Natural a Lógica de Negocio: Haber logrado que una frase coloquial de un conductor se transforme instantáneamente en parámetros estrictos de optimización de rutas (priorizando tiempo, dinero o destino final) demuestra el verdadero valor del agente.
What we learned
Aprendimos a no dar por sentadas las bibliotecas estándar (como los mapas predeterminados) y a construir soluciones alternativas cuando estas imponen restricciones técnicas o de negocio inaceptables. También reafirmamos que el diseño de interfaces para personas en movimiento (en una moto) requiere un enfoque brutalmente minimalista: fuentes grandes, colores claros (verde/amarillo) para decisiones rápidas y la eliminación de cualquier interacción que no sea estrictamente necesaria.
What's next for The Courier (t'oox)
Migración de Audio: Reemplazar el stub actual por expo-audio para conectar el procesamiento Speech-to-Text real y habilitar el asistente de voz en vivo.
Conexión del Backend: Sustituir los generadores de datos simulados por nuestro backend en desarrollo, conectando el motor de rutas predictivo para que los "bloques de ruta" y la inyección de órdenes automáticas procesen demanda real del mercado.
Despliegue de Piloto: Iniciar pruebas de campo en un radio controlado (ej. 3 km) con repartidores reales para calibrar el algoritmo de estimación de costos por desgaste vehicular y combustible frente a las condiciones del tráfico real.
Log in or sign up for Devpost to join the conversation.