TrailMate

TrailMate

App de senderismo offline-first con mapas de rutas descargables y check-ins de seguridad tipo SOS.

React NativeExpoTypeScriptSQLiteMapLibreZustand
Ver en vivoVer repositorio

El problema

Fui de senderismo a una zona sin señal y me di cuenta de que todas las apps de rutas que tenía instaladas eran inútiles sin conexión. Quería una app que funcionara completamente offline una vez descargada la ruta, incluyendo mapas, perfil de elevación y una forma de avisar que estaba bien.

Rol e impacto

Decisiones técnicas y desafíos

Empaquetar tiles de mapa para cada ruta posible habría hecho la app enorme, pero descargarlos bajo demanda va en contra del propósito offline-first. Comparé pre-renderizar vector tiles por región en tiempo de build contra dejar que el usuario descargue un paquete de tiles acotado solo para la ruta elegida.

Opté por paquetes MBTiles bajo demanda acotados a un bounding box alrededor de la ruta seleccionada, ya que mantuvo la instalación base pequeña y el usuario solo paga el costo de almacenamiento de las rutas que realmente piensa caminar.

El rastreo GPS continuo de alta precisión es una de las formas más rápidas de agotar la batería en una caminata de varias horas. Evalué rastreo de alta precisión siempre activo contra una frecuencia de muestreo adaptativa según la velocidad de movimiento.

Elegí una frecuencia de muestreo adaptativa que amplía el intervalo de sondeo GPS cuando la velocidad es baja o el dispositivo está quieto, porque mantuvo el registro de la ruta preciso en los tramos en movimiento mientras reducía significativamente el consumo de batería en segundo plano durante las paradas.

Stack detallado

CapaTecnologíaPor qué
MobileReact Native, Expo, MapLibreMultiplataforma con renderizado de mapas nativo y tiles offline
StorageSQLite, paquetes MBTiles en el dispositivoDatos de rutas y mapas local-first sin depender de un servidor
EstadoZustandStore liviano para el estado de ruta, GPS y descargas

Galería

Pantalla de mapa de ruta con perfil de elevaciónGestor de descargas mostrando paquetes de rutas offline

Qué haría diferente

Agregaría un flujo de SOS real que funcione vía mensajería satelital en vez de solo un check-in local de "marcar como seguro". Ahora mismo, el check-in de seguridad solo sirve una vez que vuelves a tener señal, lo cual falla justo en el escenario que debería cubrir.