Урок 1Дизайн гаманця: активні квитки, життєвий цикл квитків, закінчення терміну, сценарії відновлення та передачіСпроектуйте гаманець, що керує активними, майбутніми та закінченими квитками. Ви змоделюєте стани квитків, валідацію, закінчення терміну та зміну пристроїв, підтримуючи відновлення, передачу та запобігання шахрайству в чіткому, передбачуваному інтерфейсі.
Машина станів квитків та події життєвого циклуВиди активних, майбутніх та закінчених квитківСтани валідації та візуальні сигнали безпекиПотоки відновлення після перевстановлення чи втрати пристроюПравила передачі, обмеження та контроль шахрайстваУрок 2UI/UX планувальника поїздок: необхідні входи (початок, пункт призначення, час, уподобання) та елементи виходу (маршрут, тривалість, пересадки, пішохідні сегменти)Спроектуйте UI планувальника поїздок від входів до результатів. Ви визначите обов'язкові поля, елементи керування уподобаннями та картки результатів, забезпечуючи доступність, чіткість компромісів та швидке порівняння альтернативних маршрутів та режимів.
Форми входу для початку, пункту призначення та часуЕлементи керування уподобаннями для режимів та ходьбиПроектування карток результатів маршрутів та підсумківДетальні види для сегментів, пересадок та тарифівРозгляди доступності та локалізаціїУрок 3Керування користувачем сповіщеннями: підписки, тихі години, фільтрація по лініях, доступність сповіщеньСпроектуйте елементи керування користувачем, що визначають, які сповіщення отримуються. Ви реалізуєте підписки, тихі години, фільтри по лініях та опції доступності, щоб пасажири могли налаштувати релевантність, зберігаючи критичні повідомлення безпеки.
Моделі підписок: лінії, станції, маршрутиТихі години, не турбувати та перевизначенняОпції фільтрації по лініях та темахКатегорії критичних проти необов'язкових сповіщеньНалаштування доступності доставки сповіщеньУрок 4Доставка сповіщень у реальному часі: push-повідомлення, WebSocket/Socket.IO, події від сервера, резервне опитуванняДослідіть канали доставки сповіщень у реальному часі та компроміси. Ви порівняєте push, WebSocket, SSE та опитування, спроектуєте повторне підключення та відступ, забезпечуючи своєчасність, дедуплікацію та енергоефективність сповіщень на мобільних пристроях.
Вибір push проти WebSocket проти SSE проти опитуванняКерування підключеннями та логіка повторного підключенняПорядок, дедуплікація та ідемпотентні сповіщенняБатарея, використання даних та фонові обмеженняРезервні стратегії при невдачі реального часуУрок 5Ранжування та фільтрація маршрутів: найшвидший, найменше пересадок, доступність, найменше ходьбиСпроектуйте логіку ранжування, що балансує швидкість, пересадки, ходьбу та доступність. Ви визначите фільтри, моделі оцінювання, правила розв'язання нічиїх та UX-патерни, щоб пасажири швидко знаходили маршрути за уподобаннями та обмеженнями.
Ранжування за часом, пересадками та відстанню ходьбиОцінювання маршрутів з урахуванням доступності та штрафиНалаштовувані користувачем фільтри та пресетиОбробка неповних або низькоякісних даних GTFSПояснення ранжування чіткими мітками UIУрок 6Аналітичні події для ключових функцій: пошуки поїздок, покупки квитків, взаємодії зі сповіщеннямиВизначте аналітику для пошуків поїздок, покупок квитків та сповіщень. Ви спроектуєте схеми подій, властивості користувача, лійки та контролі приватності, що допомагають покращувати функції з дотриманням регуляцій та очікувань користувачів.
Основні події для пошуку, покупки та сповіщеньНазви подій, версіонування та схемиЛійки, когорти та аналіз утриманняПриписування сповіщень діям користувачаПриватність, згода та мінімізація данихУрок 7Потік покупки квитків: каталог продуктів, правила тарифів, місця/резервації проти моделей доказу оплатиСпроектуйте потік покупки квитків від вибору продукту до підтвердження. Ви змоделюєте правила тарифів, проїзди, резервації та доказ оплати, забезпечуючи чіткість, валідацію та сумісність з бекендами агенцій.
Структура каталогу продуктів та сімей тарифівПравила тарифів, зони, обмеження та пільгиРезервація місць проти відкритого доказу оплатиВалідація придатності та типів пасажирівПідтвердження покупки та дизайн квитанціїУрок 8Потік користувача від запуску додатку до результатів маршруту: дозволи, доступ до локації, швидкі дії, недавні пошукиПрокладіть повний шлях від запуску додатку до результатів маршруту. Ви спроектуєте запити дозволів, обробку локації, скорочення та недавні пошуки, щоб пасажири досягали релевантних варіантів поїздок з мінімальним тертям та чіткими очікуваннями приватності.
Холодний запуск, заставка та рішення онбордингуЗапит та пояснення дозволів локаціїШвидкі дії, обрані, скорочення дім-роботаНедавні пошуки, ранжування недавніх та очищенняОбробка відхилених дозволів та ручної локаціїУрок 9Представлення сповіщень у додатку: вхідна скринька, банери, контекстуальні сповіщення маршрутів, персоналізація та пріоритизаціяВизначте, як сповіщення з'являються в додатку в різних контекстах. Ви спроектуєте вхідні скриньки, банери та контекстуальні поверхні з пріоритизацією, групуванням та персоналізацією, що інформують пасажирів без перевантаження.
Розклад вхідної скриньки сповіщень та опції фільтраціїТимчасові банери, тости та модальні вікнаКонтекстуальні сповіщення на видах маршрутів та квитківПріоритизація, групування та обмеження частотиПерсоналізація на основі використання та лінійУрок 10Обробка помилок та патерни повторних спроб під час покупок та мережевих збоївДізнайтеся патерни обробки збоїв покупок та мережі без втрати довіри користувача. Ви спроектуєте повторні спроби, ідемпотентні операції, офлайн-черги та чіткі повідомлення про помилки, що захищають платежі та уникають дубльованих зарядів чи зламаних квитків.
Класифікація тимчасових проти постійних збоївПроектування безпечних стратегій повтору та відступуКлючі ідемпотентності для платіжних операційОфлайн-черги та локальні журнали операційПовідомлення про помилки для користувача та потоки відновленняУрок 11Інтеграція платежів: розміщені сторінки проти SDK у додатку, зменшення області PCI, токенізаціяДослідіть опції інтеграції платежів та межі безпеки. Ви порівняєте розміщені сторінки та SDK у додатку, спроектуєте токенізацію та зменшите область PCI, зберігаючи гладку, надійну та відповідну касу.
Компроміси розміщеної каси проти нативних SDKЗменшення області PCI з токенізацією3-D Secure, SCA та регіональні правилаОбробка відмов, повернень та рефандівЗберігання та оновлення платіжних інструментівУрок 12Локальне сховище для квитків: опції безпечного зберігання (шифрована база даних, keystore/Keychain) та токенізаціяДізнайтеся патерни безпечного локального зберігання для квитків та токенів. Ви порівняєте шифровані бази даних, Keychain чи Keystore та платформні API, проектуючи ротацію ключів, поведінку резервного копіювання та захист від маніпуляцій чи клонування.
Модель загроз для збережених квитків та токенівВикористання Keychain чи Keystore для секретівШифровані бази даних для метаданих квитківРотація ключів, відкликання та міграціяРезервне копіювання, відновлення та поведінка на кількох пристроях