Урок 1Дизайн кошелька: активные билеты, жизненный цикл билетов, истечение, сценарии восстановления и передачиСпроектируйте кошелек, управляющий активными, предстоящими и истекшими билетами. Вы смоделируете состояния билетов, валидацию, истечение и смену устройств, поддерживая восстановление, передачу и предотвращение мошенничества в четком, предсказуемом интерфейсе.
Ticket state machine and lifecycle eventsActive, upcoming, and expired ticket viewsValidation states and visual security cuesRestore flows after reinstall or device lossTransfer rules, limits, and fraud controlsУрок 2UI/UX планировщика поездок: обязательные входы (отправление, прибытие, время, предпочтения) и выходные элементы (маршрут, длительность, пересадки, пешие сегменты)Спроектируйте UI планировщика поездок от ввода до результатов. Укажите обязательные поля, элементы управления предпочтениями и карточки результатов, обеспечивая доступность, ясность компромиссов и быстрое сравнение альтернативных маршрутов и режимов.
Input forms for origin, destination, and timePreference controls for modes and walkingDesigning route result cards and summariesDetail views for legs, transfers, and faresAccessibility and localization considerationsУрок 3Элементы управления оповещениями для пользователей: подписки, тихие часы, фильтрация по линиям, доступность оповещенийСпроектируйте элементы управления для пользователей, определяющие получаемые оповещения. Реализуйте подписки, тихие часы, фильтры по линиям и опции доступности, чтобы пассажиры могли настроить релевантность, получая критические сообщения о безопасности.
Subscription models: lines, stations, routesQuiet hours, do-not-disturb, and overridesPer-line and per-topic filtering optionsCritical vs optional alert categoriesAccessibility settings for alert deliveryУрок 4Доставка оповещений в реальном времени: push-уведомления, WebSocket/Socket.IO, события от сервера, резервный опросИзучите каналы доставки оповещений в реальном времени и компромиссы. Сравните push, WebSocket, SSE и опрос, спроектируйте переподключение и откат, обеспечивая своевременность, дедупликацию и энергоэффективность оповещений на мобильных устройствах.
Choosing push vs WebSocket vs SSE vs pollingConnection management and reconnection logicOrdering, deduplication, and idempotent alertsBattery, data usage, and background limitsFallback strategies when real-time failsУрок 5Ранжирование и фильтрация маршрутов: самый быстрый, минимум пересадок, доступность, минимум ходьбыСпроектируйте логику ранжирования, балансирующую скорость, пересадки, ходьбу и доступность. Определите фильтры, модели скоринга, правила разрешения ничьих и UX-паттерны, чтобы пассажиры быстро находили подходящие маршруты.
Ranking by time, transfers, and walking distanceAccessibility-aware route scoring and penaltiesUser-configurable filters and presetsHandling incomplete or low-quality GTFS dataExplaining rankings with clear UI labelsУрок 6События аналитики для ключевых функций: поиски поездок, покупки билетов, взаимодействия с оповещениямиОпределите аналитику для поисков поездок, покупок билетов и взаимодействий с оповещениями. Спроектируйте схемы событий, свойства пользователей, воронки и контроль приватности для улучшения функций с учетом регуляций и ожиданий пользователей.
Core events for search, purchase, and alertsEvent naming, versioning, and schemasFunnels, cohorts, and retention analysisAttribution of alerts to user actionsPrivacy, consent, and data minimizationУрок 7Поток покупки билетов: каталог продуктов, правила тарифов, места/резервы против моделей доказательства оплатыСпроектируйте поток покупки билетов от выбора продукта до подтверждения. Смоделируйте правила тарифов, проездные, резервы и доказательство оплаты, обеспечивая ясность, валидацию и совместимость с бэкендами агентств.
Product catalog structure and fare familiesFare rules, zones, caps, and concessionsSeat reservations vs open proof-of-paymentValidating eligibility and rider typesPurchase confirmation and receipt designУрок 8Поток пользователя от запуска приложения до результатов маршрута: разрешения, доступ к местоположению, быстрые действия, недавние поискиОпишите полный путь от запуска приложения до результатов маршрутов. Спроектируйте запросы разрешений, обработку местоположения, быстрые действия и недавние поиски для минимального трения и четких ожиданий приватности.
Cold start, splash, and onboarding decisionsRequesting and explaining location permissionsQuick actions, favorites, and home-work shortcutsRecent searches, recents ranking, and clearingHandling denied permissions and manual locationУрок 9Представление оповещений в приложении: входящие, баннеры, контекстные оповещения маршрутов, персонализация и приоритизацияОпределите, как оповещения появляются в приложении в разных контекстах. Спроектируйте входящие, баннеры и контекстные поверхности с приоритизацией, группировкой и персонализацией, информируя пассажиров без перегрузки.
Alert inbox layout and filtering optionsTransient banners, toasts, and modalsContextual alerts on route and ticket viewsPrioritization, grouping, and rate limitingPersonalization based on usage and linesУрок 10Обработка ошибок и паттерны повторов при сбоях покупок и сетиУзнайте паттерны обработки сбоев покупок и сети без потери доверия пользователей. Спроектируйте повторы, идемпотентные операции, оффлайн-очереди и четкие сообщения об ошибках для защиты платежей и избежания дубликатов или сломанных билетов.
Classifying transient vs permanent failuresDesigning safe retry and backoff strategiesIdempotency keys for payment operationsOffline queues and local operation logsUser-facing error messages and recovery flowsУрок 11Интеграция платежей: хостинговые страницы против SDK в приложении, сокращение области PCI, токенизацияИзучите опции интеграции платежей и границы безопасности. Сравните хостинговые страницы и SDK в приложении, спроектируйте токенизацию и сократите область PCI, сохраняя плавный, надежный и соответствующий чекаут.
Hosted checkout vs native SDK tradeoffsReducing PCI scope with tokenization3-D Secure, SCA, and regional rulesHandling declines, reversals, and refundsStoring and updating payment instrumentsУрок 12Локальное хранение билетов: опции безопасного хранения (зашифрованная БД, keystore/Keychain) и токенизацияУзнайте паттерны безопасного локального хранения для билетов и токенов. Сравните зашифрованные БД, Keychain или Keystore и API платформ, спроектировав ротацию ключей, поведение бэкапа и защиту от подделок или клонирования.
Threat model for stored tickets and tokensUsing Keychain or Keystore for secretsEncrypted databases for ticket metadataKey rotation, revocation, and migrationBackup, restore, and multi-device behavior