Una barra para todo el sistema
La cuenta STM, la recarga rápida, los avisos y Cómo Ir se abren como pestañas dentro de la app. Las páginas son las de la ciudad, así que nada de la cuenta se copia ni se reimplementa.
MVD Transporte
MVD Transporte junta los servicios de transporte de la propia ciudad — la cuenta STM, la recarga, Cómo Ir y los arribos en vivo — detrás de una sola barra, y suma lo que les falta: paradas guardadas, un aviso antes de que llegue el ómnibus y un widget en la pantalla de inicio. No oficial, gratis y open source.
El problema
Montevideo publica en línea casi todo su transporte público: la cuenta de la tarjeta STM y su recarga, el planificador Cómo Ir, los próximos arribos de cada parada. Cada uno vive en su propia dirección, con su propio diseño y su propio login. Saber si queda saldo en la tarjeta y cuándo llega el próximo ómnibus a la esquina implica tres sitios y bastante espera frente a páginas que no se pensaron para un celular.
Nada de eso hay que rehacerlo. Los datos y las cuentas son de la ciudad y ahí tienen que quedarse. Lo que falta es la capa de arriba: un solo lugar para abrir, las paradas que de verdad usás y un aviso que llegue antes que el ómnibus, no después.
Qué hace
La cuenta STM, la recarga rápida, los avisos y Cómo Ir se abren como pestañas dentro de la app. Las páginas son las de la ciudad, así que nada de la cuenta se copia ni se reimplementa.
Guardás las paradas que usás por número y ves los próximos ómnibus en cada una, leídos del feed público de arribos de la ciudad. Una ruta armada en Cómo Ir se guarda con un toque.
Un chequeo en segundo plano cada quince minutos avisa cuando un ómnibus de una parada o ruta guardada está a los minutos que elegiste. Sin cuenta que crear y sin nada que dejar abierto.
En Android, un widget en la pantalla de inicio muestra el saldo de la tarjeta y el próximo ómnibus de tu ruta. Un bloqueo biométrico mantiene cerrada la cuenta STM cuando prestás el celular.
Por dentro
Flutter, un solo código para Android e iOS. Las páginas de la ciudad corren en un WebView tal como se publican; las paradas, rutas y avisos son nativos, se guardan en el teléfono con Hive y WorkManager los revisa en segundo plano. No hay un servidor nuestro en el medio ni registro: nada sale del teléfono salvo los pedidos a los propios servicios de la ciudad.
// WorkManager, every 15 minutes, on the phonefor (final stop in CacheService.getStopsWithNotificationsEnabled()) { final buses = await MvdApiService.getNextArrivals(stop.id); buses.where((b) => b.etaMinutes <= stop.etaAlertMinutes).forEach(alert);}Construido con
Siguiente
MemberBay