Вопросы по Архитектура мобильных приложений
Архитектурная секция мобильного собеса для iOS, Android, Flutter и React Native: паттерны, навигация, модульность, DI, офлайн, push, безопасность, релизы и мобильный system design.
Проверьте себя: тест по архитектуре мобильных приложений
20 вопросов, 10 минут, уровень junior, middle или senior
MVC, MVP, MVVM, MVI, VIPER
Чем отличаются паттерны презентационного слоя, однонаправленный поток данных и когда что выбирать.
Урок: MVC, MVP, MVVM, MVI и VIPER в мобильной разработке 7 минClean Architecture и слои
Слои data, domain и presentation, правило зависимостей, use case, репозиторий и границы модулей.
Урок: Clean Architecture и слои мобильного приложения 6 минНавигация, координаторы и deep links
Router и Coordinator, навигация как состояние, deep links, universal links и app links.
Урок: Навигация, координаторы и deep links 6 мин- Back stack на Android
- Утечка дочерних координаторов
- Зачем нужен Coordinator
- Deep link на экран, требующий входа
- Безопасность deep links
- Настройка Universal Links
- Как устроен Coordinator
- Отложенные deep links
Ещё 8 вопросов и задач
Модульность
Зачем делить на модули, feature и core, api и impl, графы зависимостей и скорость сборки.
Урок: Модульность мобильного приложения 6 минВнедрение зависимостей
DI и Service Locator, скоупы и время жизни, контейнеры на iOS, Android и Flutter, тестируемость.
Урок: Внедрение зависимостей на iOS, Android и Flutter 6 минОфлайн и синхронизация
Offline-first, единый источник правды, очередь изменений, конфликты, идемпотентность и фоновая синхронизация.
Урок: Офлайн-режим и синхронизация данных 8 минКеширование
Кеш в памяти и на диске, HTTP-кеш, картинки, инвалидация, stale-while-revalidate и пагинация.
Урок: Кеширование в мобильных приложениях 6 минPush-уведомления
APNs и FCM, токены, типы пушей, тихие пуши, rich-уведомления, доставка и аналитика.
Урок: Push-уведомления: APNs, FCM и надёжность 6 минБезопасность мобильных приложений
Хранение секретов, Keychain и Keystore, TLS и pinning, OAuth с PKCE, обфускация, целостность устройства, MASVS.
Урок: Безопасность мобильных приложений 7 мин- Биометрия для входа
- Защита экрана с чувствительными данными
- Безопасное хранение данных на устройстве
- Где хранить токены на Android
- Логирование и персональные данные
- OWASP MASVS
- Угрозы и защиты мобильного приложения
- Зачем R8 и обфускация
Ещё 8 вопросов и задач
Производительность и холодный старт
Холодный, тёплый и горячий старт, главный поток, плавность списков, память, батарея и размер приложения.
Урок: Производительность и холодный старт мобильного приложения 6 минCI/CD, фича-флаги и релизы
Пайплайн сборки, подпись, тесты на CI, фича-флаги, поэтапные релизы, принудительное обновление и откат.
Урок: CI/CD, фича-флаги и релизы мобильных приложений 6 минМобильный system design
Как вести секцию: требования, API, хранение, синхронизация. Разборы: лента, чат, загрузка медиа, карта, оплата.
Урок: Мобильный system design: как вести секцию 8 мин- Мобильный system design: SDK аналитики событий
- Мобильный system design: перевод денег в банковском приложении
- Мобильный system design: каталог и корзина маркетплейса
- Мобильный system design: лента новостей с картинками и видео
- Мобильный system design: загрузка фото и видео
- Мобильный system design: мессенджер
- Мобильный system design: заметки с синхронизацией между устройствами
- Мобильный system design: истории (stories)
Ещё 16 вопросов и задач
- Мобильный system design: такси с отслеживанием машины на карте
- Оценка объёмов в мобильном system design
- Пагинация ленты на мобильном
- С чего начать секцию мобильного system design
- Мобильные приёмы для ленты
- План ответа на мобильный system design
- Протоколы связи с сервером
- Оплата в мобильном приложении при плохой сети
- Отслеживание курьера на карте
- Порядок ответа на system design
- Загрузка файлов напрямую в хранилище
- Транспорт для чата в реальном времени
- Как вести секцию мобильного system design
- Компромиссы в мобильной архитектуре
- Догрузка пропущенных сообщений
- Загрузка большого видео