← Все навыки

Системный дизайн для мобильных разработчиков

Подготовка к секции Mobile System Design в бигтехе — проектирование мобильных приложений production-уровня

iOS + Android Middle → Senior/Staff Индивидуально с ментором

Для кого этот курс

  • Мобильные разработчики, готовящиеся к секции Mobile System Design на собеседовании
  • iOS/Android-инженеры, которые хотят проектировать фичи production-уровня, а не только реализовывать
  • Кандидаты на Senior/Staff-позиции, где спрашивают архитектуру целиком: клиент, API, офлайн

Программа

Мобильный домен

UI-фреймворки, lifecycle, многопоточность
  • UI-фреймворки: SwiftUI/UIKit, Jetpack Compose/View System
  • Lifecycle: UIViewController/SceneDelegate, Activity/Fragment
  • Многопоточность: GCD, async/await, акторы; Looper, корутины
  • Навигация, coordinator pattern, deep links
  • Data binding: Combine, KVO; LiveData, Flow/StateFlow

API и сеть

Протоколы, real-time, пагинация
  • REST, WebSockets, GraphQL, gRPC — выбор протокола под задачу
  • Real-time: polling, long-polling, SSE, push-уведомления
  • Пагинация: limit-offset, page-based, keyset, cursor
  • Сетевая гигиена: дата-контракты, оптимизация числа запросов
  • HTTP-клиенты, сериализация, DTO-мапперы, background-запросы
  • Версионирование API и обратная совместимость

Офлайн, кэширование, аутентификация

Ядро мобильного сисдиза
  • Offline & sync: разрешение конфликтов, очереди, background retry
  • Delta updates: timestamps, sequence ID, ETag
  • Кэширование: Cache-Control, ETag, memory/disk cache, инвалидация
  • Аутентификация: OAuth 2.0, биометрия, access/refresh flow, хранение токенов
  • Retry-политики: exponential backoff, circuit breaker

Архитектура и паттерны

MVVM/MVI, Clean Architecture, DI
  • MVC, MVP, MVVM, MVI, Clean Architecture, VIPER, Redux
  • Архитектура на стыках: клиент — API — база без глубокого ухода в бэкенд
  • BFF и BDUI (server-driven UI) — куда движутся мобильные платформы
  • Паттерны GoF в мобильном контексте
  • Dependency Injection: Hilt/Dagger, Swinject, ручной DI
  • Feature flags и remote config

Хранение данных

Key-value, БД, secure storage
  • UserDefaults, SharedPreferences/DataStore
  • SQLite, Room, Core Data, Realm — выбор хранилища
  • Secure storage: Keychain, EncryptedSharedPreferences

Производительность и оптимизация

Память, батарея, старт, размер
  • Утечки памяти: источники, детекция, профилирование
  • CPU и батарея: фоновые задачи, Doze Mode, App Nap
  • Рендеринг и 60 FPS, время старта, размер приложения

Инфраструктура, наблюдаемость, приватность

CI/CD, CDN, Sentry, безопасность
  • Unit/UI/E2E-тесты
  • Инфраструктура и DevOps: CDN для контента и артефактов, CI/CD (TeamCity), сборка и выгрузка артефактов, beta-раскатки
  • Observability: логи и Sentry, границы ответственности разработки и QA, гигиена событий
  • Приватность: шифрование, минимизация данных и разрешений, обфускация

Стратегия интервью

Как вести секцию и защищать решения
  • Сбор требований: функциональные и нефункциональные (офлайн, трафик, батарея, 60 FPS, консистентность)
  • Структура: требования → модель данных и API → high-level design → deep dives
  • Приоритизация «BFS, потом DFS», основы C4-модели
  • Артикуляция трейдофов и работа с фидбеком интервьюера

Практика

Разборы в формате реального интервью — от требований до deep dives

  • Лента с бесконечным скроллом, чат с real-time доставкой, офлайн-first приложение
  • Проектирование offline & sync: очередь операций, конфликты, background retry
  • Схема аутентификации: access/refresh flow и безопасное хранение токенов
  • Mock-интервью Mobile System Design с разбором по критериям Middle/Senior