Lezione 1Progettazione portafoglio: biglietti attivi, ciclo vita biglietto, scadenza, scenari restore e trasferimentoProgetta un portafoglio che gestisce biglietti attivi, futuri e scaduti. Modellerai stati biglietti, validazione, scadenza e cambi dispositivo, supportando restore, trasferimento e prevenzione frodi in interfaccia chiara e prevedibile.
Macchina stati biglietti ed eventi ciclo vitaViste biglietti attivi, futuri e scadutiStati validazione e indicatori visivi sicurezzaFlussi restore dopo reinstallazione o perdita dispositivoRegole trasferimento, limiti e controlli frodiLezione 2UI/UX pianificatore viaggi: input richiesti (origine, destinazione, orario, preferenze) ed elementi output (percorso, durata, cambi, segmenti a piedi)Progetta UI pianificatore viaggi da input a risultati. Specifica campi obbligatori, controlli preferenze e card risultati, garantendo accessibilità, chiarezza trade-off e confronto veloce tra percorsi alternativi e modalità.
Form input per origine, destinazione e orarioControlli preferenze per modalità e camminoProgettazione card risultati percorsi e riassuntiViste dettaglio per tratte, cambi e tariffeConsiderazioni accessibilità e localizzazioneLezione 3Controlli utente per avvisi: sottoscrizioni, ore silenziose, filtraggio per linea, accessibilità avvisiProgetta controlli utente che governano avvisi ricevuti. Implementa sottoscrizioni, ore silenziose, filtri per linea e opzioni accessibilità per regolare rilevanza mantenendo messaggi di sicurezza critici.
Modelli sottoscrizione: linee, stazioni, percorsiOre silenziose, non disturbare e overrideOpzioni filtraggio per linea e topicCategorie avvisi critici vs opzionaliImpostazioni accessibilità consegna avvisiLezione 4Consegna avvisi realtime: notifiche push, WebSocket/Socket.IO, eventi server-sent, polling fallbackEsplora canali consegna avvisi realtime e trade-off. Confronta push, WebSocket, SSE e polling, progetta riconnessione e backoff, garantendo avvisi tempestivi, deduplicati e efficienti in energia su dispositivi mobile.
Scelta push vs WebSocket vs SSE vs pollingGestione connessioni e logica riconnessioneOrdinamento, deduplicazione e idempotenza avvisiBatteria, uso dati e limiti backgroundStrategie fallback quando realtime fallisceLezione 5Classifica e filtraggio percorsi: più veloce, meno cambi, accessibile, meno camminoProgetta logica classifica che bilancia velocità, cambi, cammino e accessibilità. Definisci filtri, modelli scoring, regole pareggio e pattern UX per trovare velocemente percorsi matching preferenze e vincoli.
Classifica per tempo, cambi e distanza camminoScoring percorsi accessibili e penalitàFiltri e preset configurabili utenteGestione dati GTFS incompleti o bassa qualitàSpiegazione classifiche con etichette UI chiareLezione 6Eventi analytics per feature core: ricerche viaggi, acquisti biglietti, interazioni avvisiDefinisci analytics per ricerche viaggi, acquisti biglietti e avvisi. Progetta schemi eventi, proprietà utente, funnel e controlli privacy per migliorare feature rispettando regolamenti e aspettative utente.
Eventi core per ricerca, acquisto e avvisiNomenclatura eventi, versioning e schemiFunnel, coorti e analisi retentionAttribuzione avvisi ad azioni utentePrivacy, consenso e minimizzazione datiLezione 7Flusso acquisto biglietti: catalogo prodotti, regole tariffe, posti/prenotazioni vs proof-of-paymentProgetta flusso acquisto biglietti da selezione prodotto a conferma. Modella regole tariffe, abbonamenti, prenotazioni e proof-of-payment, garantendo chiarezza, validazione e compatibilità backend agenzie.
Struttura catalogo prodotti e famiglie tariffeRegole tariffe, zone, cappi e concessioniPrenotazioni posti vs proof-of-payment apertaValidazione eleggibilità e tipi utenteConferma acquisto e design ricevutaLezione 8Flusso utente da avvio app a risultati percorsi: permessi, accesso posizione, azioni rapide, ricerche recentiMappa journey end-to-end da avvio app a risultati percorsi. Progetta prompt permessi, gestione posizione, scorciatoie e ricerche recenti per raggiungere opzioni viaggi rilevanti con minima frizione e privacy chiara.
Avvio freddo, splash e decisioni onboardingRichiesta e spiegazione permessi posizioneAzioni rapide, preferiti e scorciatoie casa-lavoroRicerche recenti, ranking e svuotamentoGestione permessi negati e posizione manualeLezione 9Presentazione avvisi in-app: inbox, banner, avvisi contestuali percorsi, personalizzazione e prioritizzazioneDefinisci come avvisi appaiono nell'app tra contesti. Progetta inbox, banner e superfici contestuali, con prioritizzazione, raggruppamento e personalizzazione che informano utenti senza sovraccaricarli.
Layout inbox avvisi e opzioni filtraggioBanner transitori, toast e modaliAvvisi contestuali su viste percorsi e bigliettiPrioritizzazione, raggruppamento e rate limitingPersonalizzazione basata su usage e lineeLezione 10Gestione errori e pattern retry durante acquisti e fallimenti reteImpara pattern per gestire fallimenti acquisti e rete senza perdere fiducia utente. Progetta retry, operazioni idempotenti, code offline e messaggi errore chiari che proteggono pagamenti ed evitano duplicati o biglietti rotti.
Classificazione fallimenti transitori vs permanentiProgettazione retry sicuri e strategie backoffChiavi idempotenza per operazioni pagamentoCode offline e log operazioni localiMessaggi errore utente e flussi recoveryLezione 11Integrazione pagamenti: pagine hosted vs SDK in-app, riduzione scope PCI, tokenizzazioneEsplora opzioni integrazione pagamenti e confini sicurezza. Confronta pagine hosted e SDK in-app, progetta tokenizzazione e riduci scope PCI mantenendo checkout fluido, affidabile e conforme.
Trade-off checkout hosted vs SDK nativiRiduzione scope PCI con tokenizzazione3-D Secure, SCA e regole regionaliGestione rifiuti, reversal e rimborsiStoccaggio e aggiornamento strumenti pagamentoLezione 12Storage locale biglietti: opzioni storage sicuro (database crittografato, keystore/Keychain) e tokenizzazioneImpara pattern storage locale sicuro per biglietti e token. Confronta database crittografati, Keychain o Keystore e API piattaforma, progettando rotazione chiavi, backup e protezioni contro tampering o clonazione.
Threat model per biglietti e token memorizzatiUso Keychain o Keystore per segretiDatabase crittografati per metadati bigliettiRotazione chiavi, revoca e migrazioneBackup, restore e comportamento multi-dispositivo