Какой подход к решению задачи вы выберете
Что проверяют
Как вы думаете до того, как пишете код: задаёте ли вопросы, видите ли ограничения платформы, умеете ли выбрать простое решение и объяснить выбор. Обычно вопрос звучит после описания задачи, например «сделайте экран списка с офлайн-режимом», а следом спрашивают, что вы упростите, если срок сократят вдвое.
Как отвечать
Речь не про Agile или Waterfall, а про инженерный подход к конкретной задаче. Каркас:
- уточнение: откуда данные, нужен ли офлайн, объём списка, минимальная версия Android, есть ли дизайн. Пара точных вопросов сразу показывает опыт;
- декомпозиция: слои по рекомендациям Google, UI-слой и data-слой с репозиторием, domain-слой только если логика реально переиспользуется;
- инструменты с обоснованием: Jetpack Compose или существующие View,
ViewModelсоStateFlow, корутины, Retrofit и OkHttp для сети, Room как единый источник истины для офлайна, Hilt для зависимостей,WorkManagerдля отложенной синхронизации; - крайние случаи Android: поворот экрана и смерть процесса (
SavedStateHandle), отсутствие сети, разрешения, фоновые ограничения системы; - проверка: какие тесты напишете (юнит на
ViewModelи репозиторий, UI-тест на ключевой сценарий) и как поймёте, что задача решена.
Проговорите компромисс: «сначала сделаю рабочий вариант без кеша, затем добавлю Room, если офлайн подтвердится». Это ценнее идеальной схемы на доске.
Если опыта с частью стека нет, скажите об этом прямо и опишите, как бы разбирались: документация, прототип на час, вопрос коллеге. Примеры приводите свои и с понятным масштабом: сколько экранов, сколько пользователей, что сломалось и как чинили.
Где спотыкаются
Отвечают про методологии: «выберу Agile, он гибкий». Интервьюер спрашивал про решение задачи, а не про процесс в команде, и такой ответ звучит как заготовка.
Сразу рисуют Clean Architecture с пятью модулями, use case на каждую кнопку и мапперами между слоями ради одного экрана. Переусложнение замечают быстро.
Забывают про жизненный цикл: состояние теряется при повороте, запрос повторяется на каждое пересоздание экрана, фоновую работу убивает система.