Lección 1Diseño de billetera: boletos activos, ciclo de vida, vencimiento, escenarios de restauración y transferenciaDiseña una billetera que gestione boletos activos, próximos y vencidos. Modelarás estados de boletos, validación, vencimiento y cambios de dispositivo, soportando restauración, transferencia y prevención de fraude en interfaz clara y predecible.
Máquina de estados de boletos y eventos de ciclo de vidaVistas de boletos activos, próximos y vencidosEstados de validación y cues visuales de seguridadFlujos de restauración post reinstalación o pérdida de dispositivoReglas de transferencia, límites y controles antifraudeLección 2UI/UX planificador de viajes: inputs requeridos (origen, destino, hora, preferencias) y elementos de salida (ruta, duración, transbordos, tramos peatonales)Diseña la UI del planificador de viajes desde inputs hasta resultados. Especificarás campos requeridos, controles de preferencias y cards de resultados, asegurando accesibilidad, claridad de tradeoffs y comparación rápida entre rutas alternativas.
Formularios de input para origen, destino y horaControles de preferencias para modos y caminataDiseño de cards y resúmenes de rutasVistas detalladas de tramos, transbordos y tarifasConsideraciones de accesibilidad y localizaciónLección 3Controles de usuario para alertas: suscripciones, horas silenciosas, filtrado por línea, accesibilidad de alertasDiseña controles orientados al usuario que gobiernen qué alertas se reciben. Implementarás suscripciones, horas silenciosas, filtros por línea y opciones de accesibilidad para que los usuarios ajusten relevancia sin perder mensajes críticos de seguridad.
Modelos de suscripción: líneas, estaciones, rutasHoras silenciosas, no molestar y overridesOpciones de filtrado por línea y temaCategorías de alertas críticas vs opcionalesConfiguraciones de accesibilidad para entrega de alertasLección 4Entrega de alertas en tiempo real: push notifications, WebSocket/Socket.IO, server-sent events, polling fallbackExplora canales de entrega de alertas en tiempo real y tradeoffs. Compararás push, WebSockets, SSE y polling, diseñarás reconexión y backoff, asegurando alertas oportunas, deduplicadas y eficientes en consumo de batería en dispositivos móviles.
Elección push vs WebSocket vs SSE vs pollingGestión de conexiones y lógica de reconexiónOrdenamiento, deduplicación e idempotencia de alertasLímites de batería, datos y backgroundEstrategias fallback cuando falla tiempo realLección 5Ranking y filtrado de rutas: más rápido, menos transbordos, accesibilidad, menos caminataDiseña lógica de ranking que balancee velocidad, transbordos, caminata y accesibilidad. Definirás filtros, modelos de scoring, reglas de desempate y patrones UX para que usuarios encuentren rápidamente rutas que matchen preferencias y restricciones.
Ranking por tiempo, transbordos y distancia caminandoScoring de rutas consciente de accesibilidad y penalizacionesFiltros configurables por usuario y presetsManejo de datos GTFS incompletos o de baja calidadExplicación de rankings con labels UI clarosLección 6Eventos de analytics para features core: búsquedas de viajes, compras de boletos, interacciones con alertasDefine analytics para búsquedas de viajes, compras de boletos y alertas. Diseñarás esquemas de eventos, propiedades de usuario, funnels y controles de privacidad que ayuden a mejorar features respetando regulaciones y expectativas de usuarios.
Eventos core para búsqueda, compra y alertasNomenclatura de eventos, versionado y esquemasFunnels, cohortes y análisis de retenciónAtribución de alertas a acciones de usuarioPrivacidad, consentimiento y minimización de datosLección 7Flujo de compra de boletos: catálogo de productos, reglas de tarifas, asientos/reservas vs modelos proof-of-paymentDiseña el flujo de compra de boletos desde selección de producto hasta confirmación. Modelarás reglas de tarifas, pases, reservas y proof-of-payment, asegurando claridad, validación y compatibilidad con backends de agencias.
Estructura de catálogo de productos y familias de tarifasReglas de tarifas, zonas, topes y descuentosReservas de asiento vs proof-of-payment abiertoValidación de elegibilidad y tipos de pasajeroDiseño de confirmación de compra y reciboLección 8Flujo de usuario desde lanzamiento de app hasta resultados de ruta: permisos, acceso a ubicación, acciones rápidas, búsquedas recientesMapea el journey end-to-end desde lanzamiento de app hasta resultados de ruta. Diseñarás prompts de permisos, manejo de ubicación, shortcuts y búsquedas recientes para que usuarios lleguen a opciones relevantes con mínima fricción y expectativas claras de privacidad.
Cold start, splash y decisiones de onboardingSolicitud y explicación de permisos de ubicaciónAcciones rápidas, favoritos y shortcuts casa-trabajoBúsquedas recientes, ranking y clearingManejo de permisos denegados y ubicación manualLección 9Presentación de alertas in-app: inbox, banners, alertas contextuales de ruta, personalización y priorizaciónDefine cómo aparecen las alertas dentro de la app en distintos contextos. Diseñarás inboxes, banners y superficies contextuales, con priorización, agrupamiento y personalización que mantengan informados a usuarios sin abrumarlos.
Layout de inbox de alertas y opciones de filtradoBanners transitorios, toasts y modalesAlertas contextuales en vistas de ruta y boletoPriorización, agrupamiento y rate limitingPersonalización basada en uso y líneasLección 10Manejo de errores y patrones de retry durante compras y fallos de redAprende patrones para manejar fallos de compra y red sin perder confianza de usuario. Diseñarás retries, operaciones idempotentes, colas offline y mensajes de error claros que protejan pagos y eviten cargos duplicados o boletos rotos.
Clasificación de fallos transitorios vs permanentesDiseño de estrategias seguras de retry y backoffClaves de idempotencia para operaciones de pagoColas offline y logs locales de operacionesMensajes de error orientados al usuario y flujos de recuperaciónLección 11Integración de pagos: páginas hosted vs SDKs in-app, reducción de scope PCI, tokenizaciónExplora opciones de integración de pagos y límites de seguridad. Compararás páginas hosted y SDKs in-app, diseñarás tokenización y reducirás scope PCI manteniendo checkout fluido, confiable y compliant.
Tradeoffs checkout hosted vs SDK nativoReducción de scope PCI con tokenización3-D Secure, SCA y reglas regionalesManejo de rechazos, reversas y reembolsosAlmacenamiento y actualización de instrumentos de pagoLección 12Almacenamiento local seguro para boletos: opciones de almacenamiento seguro (base de datos encriptada, keystore/Keychain) y tokenizaciónAprende patrones de almacenamiento local seguro para boletos y tokens. Compararás bases de datos encriptadas, Keychain o Keystore y APIs de plataforma, diseñando rotación de claves, comportamiento de backup y protecciones contra tampering o clonación.
Threat model para boletos y tokens almacenadosUso de Keychain o Keystore para secretosBases de datos encriptadas para metadata de boletosRotación de claves, revocación y migraciónComportamiento backup, restore y multi-dispositivo