Комплект материалов: что спрашивают, что учить, в каком порядке и как себя проверять.
Собран по актуальным источникам за 2025–2026 (список — в 06-resources.md).
| Файл | Что внутри |
|---|---|
01-checklist.md |
Полный чеклист тем: 16 нумерованных блоков (плюс 2а) с чекбоксами и критериями «знаю на senior» |
02-plan.md |
План подготовки на 8 недель + сжатая версия на 4 недели и расширенная на 12 |
03-question-bank.md |
250 вопросов по блокам: теория, сценарии, «злые» follow-up |
04-system-design.md |
Фреймворк ответа на 6 шагов, 15 канонических задач, сигналы уровня |
05-behavioral.md |
Поведенческая секция: метод STAR+R, 10 тем для заготовок историй, senior-вопросы, вопросы работодателю |
06-resources.md |
Источники, книги, каналы, тренажёры |
07-compose-deep.md |
Компактный разбор Compose: композитор и slot table, snapshot-система, три фазы, стабильность и strong skipping, состояние, эффекты, списки, layout, тестирование |
08-coroutines-android.md |
Дополнение к Kotlin-гайду: scope'ы в Android-компонентах, тестирование корутин и Flow, мосты в колбэки, паттерны для лайв-кодинга |
09-jvm-memory-deep.md |
Память и рантайм: устройство памяти процесса, GC в ART от Dalvik до генерационного CMC, барьеры, ссылки всех четырёх видов, таксономия утечек, внутренности LeakCanary, native-память, OOM, JIT/AOT/dexopt и профили |
10-android-sdk-deep.md |
Платформа и SDK: компоненты и манифест, Context, Activity и Fragment, интенты и PendingIntent, фоновая работа и её ограничения, Binder, разрешения, хранилища, уведомления, окна и адаптивность, behavior changes с API 33 по 37, Jetpack |
11-concurrency-deep.md |
Слой под корутинами: модель памяти и happens-before, synchronized изнутри ART, явные локи, CAS и атомики, безопасная публикация, потокобезопасные коллекции, пулы потоков, дедлоки, соответствие «классика → корутины», тестирование конкурентности |
12-architecture-deep.md |
Архитектура и навигация: MVVM/MVI/UDF и как защитить выбор, проектирование UI State, официальная позиция по одноразовым событиям, Repository и границы слоёв, UseCase «за и против», модуляризация и стратегия распила монолита, механизмы удержания границ, дизайн-система, feature flags, четыре уровня жизни состояния, Nav2 и Nav3, навигация в мультимодуле |
13-di-build-deep.md |
DI и сборка: что генерирует Dagger, fastInit и SwitchingProvider, все шесть способов объявить биндинг, Lazy/Provider и разрыв циклов, мультибиндинги целиком, assisted-инъекция, скоупы под капотом (DoubleCheck, свой скоуп, правила валидации, @Reusable, сабкомпоненты против зависимостей компонентов, что держит компоненты Hilt, @DefineComponent), утечки скоупа, сравнение Hilt / Koin / компиляторных плагинов / ручного DI, зависимости ViewModel, что реально ускоряет Gradle-сборку, version catalogs и convention plugins, варианты сборки и App Bundle, R8 и keep-правила, CI/CD |
14-data-network-deep.md |
Данные и сеть: offline-first как архитектура, Room (инвалидация, транзакции, миграции, индексы), outbox и идемпотентность, шесть стратегий разрешения конфликтов, оптимистичные обновления целиком, пагинация и Paging 3, OkHttp-интерцепторы, обновление токена без гонок, таймауты и ретраи, выбор транспорта, хранилища и многоуровневый кэш |
15-kmp-deep.md |
Kotlin Multiplatform: чем отличается от Flutter и RN, что шарить, expect/actual и почему интерфейсы часто лучше, боль интеропа со Swift, стек и почему Hilt не работает, Compose Multiplatform как отдельное решение, пять шагов де-рискованного внедрения, когда отказаться |
16-security-deep.md |
Безопасность: граница доверия, TLS и network security config, certificate pinning и что делать после обхода, модель угроз для данных на устройстве, депрекация EncryptedSharedPreferences, Keystore и key attestation, Play Integrity, root-детект как телеметрия, пределы обфускации, биометрия, токены и OAuth, платежи и PCI-скоуп, поверхность атаки, приватность |
17-ai-deep.md |
On-device AI: AICore и Gemini Nano, ограничения инференса, ML Kit GenAI и проверка доступности, критерии выбора «на устройстве или в облаке», гибридный инференс, собственные модели на LiteRT, и как отвечать про AI-ассистентов в работе |
Kotlin_Senior_Android_Guide.markdown |
Язык Kotlin, 21 раздел: от системы типов до JMM и Flow. Закрывает блоки 1–2 чеклиста |
Jetpack_Compose_Senior_Android_Guide.markdown |
Подробный гайд по Compose, 25 разделов. Основной материал по блоку 3 |
Algorithms_LeetCode_Easy_Medium_Senior_Android_Guide.markdown |
Алгоритмы, 30 разделов: как решать задачу на интервью, 20+ паттернов с кодом на Kotlin, Kotlin/JVM-грабли, план подготовки. Основной материал по блоку 14 |
mistakes.md |
Единственный файл, который создаёте вы сами. Журнал ошибок: вопрос, ваш неудачный ответ, правильный ответ. План обращается к нему каждую неделю — с него начинается повтор |
Осторожно: нумерация блоков в чеклисте и в банке вопросов разная. В банке нет отдельного блока «DI и сборка» (эти вопросы внутри блока «Архитектура») и нет блока по system design, зато платформа и производительность разбиты на 7/7а и 8/8а. Поэтому «блок 9» — это «Производительность» в чеклисте и «Тестирование» в банке. Везде в материалах ссылка теперь называет файл или тему явно; если встретите просто «блок N» — сверьтесь с таблицей:
| Тема | Чеклист | Банк вопросов | Вопросы |
|---|---|---|---|
| Kotlin | 1 | 1 | 1–14 |
| Корутины и Flow | 2 | 2 | 15–38 |
| Синхронизация и многопоточность | 2а | 2а | 38.1–38.28 |
| Jetpack Compose | 3 | 3 | 39–59 |
| Навигация | 4 | 4 | 60–65 |
| Архитектура | 5 | 5 | 66–74, 77–78 |
| DI и сборка | 6 | внутри 5 | 75–76, 79–80 |
| Данные, сеть, offline-first | 7 | 6 | 81–97 |
| Платформа | 8 | 7 и 7а | 98–111, 111.1–111.14 |
| Производительность | 9 | 8 и 8а | 112–124, 124.1–124.28 |
| Тестирование | 10 | 9 | 125–135 |
| Kotlin Multiplatform | 11 | 10 | 136–142 |
| Безопасность | 12 | 11 | 143–150 |
| On-device AI | 13 | 12 | 151–154 |
| Алгоритмы и live coding | 14 | 13 | 155–170 |
| Mobile System Design | 15 | блока нет (сценарии 78, 95, 97) | — |
| Senior-сигналы вне техники | 16 | 14 | 171–180 |
Где брать теорию по блокам чеклиста:
| Блок | Материал |
|---|---|
| 1–2. Kotlin, корутины и Flow (механика языка) | Kotlin_Senior_Android_Guide.markdown; разделы 12–13 — корутины и Flow, раздел 14 — JMM и многопоточность |
| 2. Корутины: Android, тесты, паттерны | 08-coroutines-android.md |
| 2а. Синхронизация, локи, атомики, потокобезопасность | 11-concurrency-deep.md |
| 3. Compose | Jetpack_Compose_Senior_Android_Guide.markdown как основной (в нём же прикладные разделы 13–14: жесты, фокус, TextField, IME), 07-compose-deep.md — внутренности и сжатый повтор перед интервью |
| 8. Платформа, компоненты, фон, разрешения, версии | 10-android-sdk-deep.md |
| 8–9. ART, память, утечки, GC, компиляция | 09-jvm-memory-deep.md |
| 4, 5. Навигация и архитектура | 12-architecture-deep.md |
| 6. DI и сборка | 13-di-build-deep.md |
| 7. Данные, сеть, offline-first | 14-data-network-deep.md |
| 10. Тестирование | 08-coroutines-android.md раздел 2 (корутины и Flow) + Compose-гайд раздел 19 (UI-тесты) |
| 11. Kotlin Multiplatform | 15-kmp-deep.md |
| 12. Безопасность | 16-security-deep.md |
| 13. On-device AI и AI в работе | 17-ai-deep.md |
| 14. Алгоритмы и live coding | Algorithms_LeetCode_Easy_Medium_Senior_Android_Guide.markdown |
| 15. Mobile System Design | 04-system-design.md |
| 16. Senior-сигналы вне техники | 05-behavioral.md |
Международные компании (типовой loop из 5–6 секций, 4–6 недель):
- HR-скрининг — 30 минут.
- Core / fundamentals — платформа, Kotlin, лайфцикл, память.
- Compose / UI — рекомпозиция, состояние, производительность списков.
- Coroutines / concurrency — structured concurrency, Flow, тестирование.
- Architecture + Mobile System Design — главная секция, где выигрывают или проигрывают senior-оффер.
- Behavioral / hiring manager — STAR-истории про владение фичей, инциденты, влияние.
Российский рынок (Яндекс, Авито, Ozon, Сбер и т. п. примерно):
- Яндекс: HR → Advanced Code (кодинг в IDE, 1 ч) → алгоритмическая секция (2 задачи в простом редакторе, 1 ч) → системный дизайн для Senior+ → финал с командой.
- Авито: скрининг → платформенная секция (Kotlin 2.x, Compose compiler, DI, архитектура, ~1,5 ч) → лайв-кодинг (в 2026 сместился с классического LeetCode в сторону «дан проект с багами: почини, дополни, покрой тестами») → System Design для Senior → финал с Engineering Manager.
- Ozon и подобные: скрининг → кодинг «пулемётом» по базовым структурам данных с последующей оптимизацией → системный дизайн → инфраструктура/observability → soft skills → Bar Raiser.
Что изменилось по сравнению с 2022–2023:
- Вопросы про View-систему почти исчезли; Compose обязателен, и спрашивают его внутренности, а не API.
- «Расскажи про MVVM» заменилось на «покажи дизайн своего state holder и объясни, почему такой».
- KMP из экзотики иногда становится требованием во многих вакансиях.
С 31 августа 2026 новые приложения и обновления в Google Play обязаны таргетить
Android 16 (API 36); продление по заявке — до 1 ноября 2026. Существующие приложения должны
таргетить минимум API 35, иначе перестают быть видимы новым пользователям на устройствах с ОС
новее вашего таргета (уже установившие приложение не затронуты).
Из этого следуют два поведенческих изменения, которые почти гарантированно всплывут на интервью:
отключить edge-to-edge больше нельзя, и predictive back включён по умолчанию
(onBackPressed не вызывается, KEYCODE_BACK не доставляется).
Android 17 (API 37) вышел в июне 2026. Главное из него — отмена временного отказа от адаптивности: на экранах от sw600dp ограничения ориентации, аспекта и resizability игнорируются без возможности opt-out. Остальные ломающие изменения при таргете 37, любое из которых можно получить как вопрос:
static finalнельзя менять рефлексией (IllegalAccessException), через JNI — краш;- новая lock-free реализация
MessageQueueломает код, который рефлексией лазит в её приватные поля; - локальная сеть требует
ACCESS_LOCAL_NETWORKлибо системного device picker; - доставка обычных SMS с OTP задерживается на 3 часа, если вы не SMS Retriever / User Consent;
- Certificate Transparency включён по умолчанию для HTTPS;
- аудио из фона (playback, audio focus, громкость) требует foreground service с while-in-use;
- лимит 50 000 ключей в Keystore на приложение.
Разбор — в 10-android-sdk-deep.md, раздел 13.
С 1 ноября 2025 приложения, таргетящие Android 15+, обязаны поддерживать 16 КБ страницы памяти на 64-битных устройствах — это про нативные библиотеки, в том числе внутри сторонних SDK.
Если материал где-то расходится с этой таблицей — верьте таблице и официальным release notes.
| Что | Актуально |
|---|---|
| Kotlin | 2.4.0 (июнь 2026), багфикс 2.4.10; context parameters и explicit backing fields стабильны |
| Compose BOM | 2026.06.01; Compose 1.11.x стабилен, 1.12.0 потребует compileSdk 37 и AGP 9 |
| Android | 16 (API 36) — обязательный target с 31.08.2026; 17 (API 37) — вышел |
| Navigation | Nav2 2.9.x, Navigation 3 стабилен с 1.0 (ноябрь 2025), сейчас 1.1.x |
| Koin | 4.2.2 (требует Kotlin 2.3+), Koin Compiler Plugin — K2-плагин в RC |
| Compose Multiplatform | iOS стабилен с 1.8.0 (май 2025), web в бете |
- Пройдите
01-checklist.mdи честно отметьте текущий уровень по каждому пункту — получите карту пробелов. - Возьмите план из
02-plan.mdпод свой срок и подставьте в него найденные пробелы. - Каждую неделю проверяйте себя вопросами из
03-question-bank.mdвслух, вживую, без подглядывания. - Параллельно, а не в конце, ведите алгоритмы по
Algorithms_LeetCode_Easy_Medium_Senior_Android_Guide.markdown: это единственный блок, который не нагоняется за неделю. - За 2–3 недели до интервью переключите фокус на
04-system-design.mdи05-behavioral.md— это два блока, которые дают наибольшую разницу в оффере.
В каталоге web находится адаптивное приложение для тренировок по шести
основным темам и чтения всех Markdown-материалов. Инструкции по локальному запуску,
проверкам и публикации на GitHub Pages находятся в web/README.md.