Kotlin и базовая модель языкаОбосновывает модель домена через sealed hierarchy, generic или composition для конкретного сценария. Диагностирует ошибку владения состоянием/мутабельной коллекцией в многопоточном коде и объясняет, почему решение сохраняет инварианты, а не только «перестаёт падать».
UI: Jetpack Compose и ViewsОбосновывает выбор Compose, View или смешанного подхода для экрана/проекта с учётом скорости миграции, производительности и доступности. Диагностирует лишние recomposition или проблему layout через инструменты Android Studio и устраняет причину с измеримым эффектом.
Android-компоненты и жизненный циклПроектирует поведение при cold start, deep link, process death и возврате из background для сложного пользовательского пути. Обосновывает границу между сохранением UI-state, локальными данными и повторной загрузкой с сервера, явно называя риск устаревших или потерянных данных.
Сеть и работа с API (Android)Обосновывает стратегию клиента для конкретного API: retry, кэширование, timeout, версионирование и обработка частичных данных. Сравнивает REST и альтернативный подход по размеру payload, сложности клиента и кэшированию; проектирует диагностику сетевых ошибок без записи секретов в логи.
Хранение данных и offline-поведениеОбосновывает offline-first/online-first стратегию, включая конфликт локальных и серверных изменений. Проектирует миграцию Room или безопасную инвалидацию кеша, явно сравнивая актуальность данных, задержку и стоимость хранения/синхронизации.
Конкурентность: coroutines и FlowОбосновывает границы диспетчеров и общего состояния для конкретной фичи; диагностирует race condition, утечку coroutine или повторный сбор Flow после изменения lifecycle. Сравнивает `shareIn`/`stateIn`, последовательную и параллельную загрузку по поведению и стоимости ресурсов.
Архитектура, зависимости и тестированиеОбосновывает выбор архитектурного подхода и границ модулей под размер продукта, не создавая слои без функции. Проектирует пирамиду тестов для фичи, диагностирует flaky UI-тест по причине синхронизации, данных или состояния, а не увеличивает ожидание вслепую.
Сборка, релиз, производительность и наблюдаемостьОбосновывает rollout и мониторинг релиза: какие crash-free, ANR, startup и продуктовые метрики отслеживать, при каком сигнале остановить распространение. Анализирует ANR/crash или регрессию производительности до конкретного потока/устройства и выбирает hotfix, feature flag или откат с учётом воздействия на пользователей.