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 señales visuales de seguridadFlujos de restauración tras reinstalación o pérdida de dispositivoReglas de transferencia, límites y controles antifraudeLección 2UI/UX planificador de viajes: entradas requeridas (origen, destino, tiempo, preferencias) y elementos de salida (ruta, duración, transbordos, tramos a pie)Diseña la UI del planificador de viajes desde entradas hasta resultados. Especificarás campos requeridos, controles de preferencias y tarjetas de resultados, asegurando accesibilidad, claridad de trade-offs y comparación rápida entre rutas alternativas.
Formularios de entrada para origen, destino y tiempoControles de preferencias para modos y caminataDiseño de tarjetas 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 visibles 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 anulacionesOpciones 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: notificaciones push, WebSocket/Socket.IO, eventos enviados por servidor, sondeo de respaldoExplora canales de entrega de alertas en tiempo real y trade-offs. Compararás push, WebSockets, SSE y sondeo, diseñarás reconexión y retroceso, asegurando alertas oportunas, sin duplicados y eficientes en energía en dispositivos móviles.
Elección push vs WebSocket vs SSE vs sondeoGestión de conexiones y lógica de reconexiónOrdenamiento, deduplicación e idempotencia de alertasLímites de batería, datos y segundo planoEstrategias de respaldo cuando falla tiempo realLección 5Clasificación y filtrado de rutas: más rápida, menos transbordos, accesible, menos caminataDiseña lógica de clasificación que balancee velocidad, transbordos, caminata y accesibilidad. Definirás filtros, modelos de puntuación, reglas de desempate y patrones UX para que usuarios encuentren rutas que coincidan con preferencias y restricciones.
Clasificación por tiempo, transbordos y distancia a piePuntuación de rutas conscientes de accesibilidadFiltros y preajustes configurables por usuarioManejo de datos GTFS incompletos o de baja calidadExplicación de clasificaciones con etiquetas UI clarasLección 6Eventos de analítica para características principales: búsquedas de viajes, compras de boletos, interacciones con alertasDefine analítica para búsquedas de viajes, compras de boletos y alertas. Diseñarás esquemas de eventos, propiedades de usuario, embudos y controles de privacidad que mejoren características respetando regulaciones y expectativas de usuarios.
Eventos principales para búsqueda, compra y alertasNomenclatura, versionado y esquemas de eventosEmbudos, 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 de comprobante de pagoDiseña el flujo de compra de boletos desde selección hasta confirmación. Modelarás reglas de tarifas, pases, reservas y comprobante de pago, 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 concesionesReservas de asientos vs comprobante de pago abiertoValidación de elegibilidad y tipos de usuarioDiseñ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 viaje completo desde lanzamiento de app hasta resultados de ruta. Diseñarás prompts de permisos, manejo de ubicación, accesos directos y búsquedas recientes para que usuarios lleguen a opciones relevantes con mínima fricción y expectativas claras de privacidad.
Inicio en frío, pantalla de bienvenida y onboardingSolicitud y explicación de permisos de ubicaciónAcciones rápidas, favoritos y accesos casa-trabajoBúsquedas recientes, clasificación y limpiezaManejo de permisos denegados y ubicación manualLección 9Presentación de alertas en app: bandeja de entrada, 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 bandejas de entrada, banners y superficies contextuales, con priorización, agrupación y personalización que mantengan informados a usuarios sin abrumarlos.
Diseño y opciones de filtrado de bandeja de alertasBanners transitorios, toasts y modalesAlertas contextuales en vistas de ruta y boletosPriorización, agrupación y limitación de tasaPersonalización basada en uso y líneasLección 10Manejo de errores y patrones de reintento durante compras y fallos de redAprende patrones para manejar fallos de compra y red sin perder confianza del usuario. Diseñarás reintentos, 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 reintento y retrocesoClaves de idempotencia para operaciones de pagoColas offline y registros locales de operacionesMensajes de error visibles y flujos de recuperaciónLección 11Integración de pagos: páginas alojadas vs SDKs en app, reducción de alcance PCI, tokenizaciónExplora opciones de integración de pagos y límites de seguridad. Compararás páginas alojadas y SDKs en app, diseñarás tokenización y reducirás alcance PCI manteniendo checkout fluido, confiable y conforme.
Trade-offs checkout alojado vs SDK nativoReducción de alcance PCI con tokenización3-D Secure, SCA y reglas regionalesManejo de rechazos, reversos y reembolsosAlmacenamiento y actualización de instrumentos de pagoLección 12Almacenamiento local de 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 respaldo y protecciones contra manipulación o clonación.
Modelo de amenazas para boletos y tokens almacenadosUso de Keychain o Keystore para secretosBases de datos encriptadas para metadatos de boletosRotación de claves, revocación y migraciónRespaldo, restauración y comportamiento multi-dispositivo