Вернуться в видеотекуРеальное собеседование Android уровня Middle. Даниил Черняев / Мобильный разработчик
Развёрнутое Android-собеседование уровня Middle с разбором MVI, реактивных потоков, слоёв приложения и DI. Во второй половине обсуждаются конкурентный доступ к корзине, Kotlin-инструменты, Android-компоненты и garbage collector.
- Направление
- Mobile
- Формат
- Техническое собеседование
- Компания
- LLeroy Merlin
- Грейд
- Middle
- Длительность
- 1 ч 20 мин
Коротко о видео
Публичное техническое собеседование Android-разработчика Даниила: он рассказывает о полутора годах коммерческого опыта, недавних проектах и выборе Android из-за сочетания UI, многопоточности, сети и работы с данными. Основная часть посвящена MVI, состояниям загрузки, RxJava, DI, слоям приложения и use cases. Затем собеседующий разбирает многопоточность на примере синхронизации общей корзины, Kotlin/Flow/Coroutines, Jetpack Compose, push-уведомления, deep links, Service и сборку мусора в Android; в отдельных ответах кандидат прямо оговаривает, что может не помнить актуальные детали реализации.
Затронутые темы
Что взять на заметку
- На вводных вопросах стоит связно объяснить реальный коммерческий опыт, выбор платформы и проекты, не раскрывая закрытые детали банковских или иных NDA-проектов.
- Для MVI нужно уметь описать однонаправленный поток: пользовательское событие приходит в presentation-слой, данные преобразуются функциями-редьюсерами, а UI получает единый актуальный State.
- Для списка и пагинации полезно отделять состояние ресурса — загрузка, ошибка, успех — от UI-модели; при нескольких запросах можно показывать ошибку только в затронутой части экрана.
- Нужно различать семантику RxJava-операторов: кандидат предлагает CombineLatest, когда экран должен получать последнее значение из нескольких источников, а не механически выбирать zip или concat.
- Одноразовые эффекты, диалоги, Toast и навигацию нужно уметь обосновать отдельно от постоянного состояния экрана; обсуждаются единый State, реакция на действие пользователя и стратегии Moxy при смене конфигурации.
- Вопросы по архитектуре включают выбор Dagger/Toothpick, компромисс code generation и reflection, а также преобразование сетевых DTO в доменные и presentation-модели через use cases.
- Для задач с общей корзиной нужно назвать deadlock, race condition и инверсию приоритетов, а затем рассмотреть локальные изменения, повторную загрузку серверной корзины, merge и риск рассинхронизации между устройствами.