Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Подготовка к собеседованию Senior Android Developer (2026)

Комплект материалов: что спрашивают, что учить, в каком порядке и как себя проверять. Собран по актуальным источникам за 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
Синхронизация и многопоточность 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

Как выглядит воронка Senior Android

Международные компании (типовой loop из 5–6 секций, 4–6 недель):

  1. HR-скрининг — 30 минут.
  2. Core / fundamentals — платформа, Kotlin, лайфцикл, память.
  3. Compose / UI — рекомпозиция, состояние, производительность списков.
  4. Coroutines / concurrency — structured concurrency, Flow, тестирование.
  5. Architecture + Mobile System Design — главная секция, где выигрывают или проигрывают senior-оффер.
  6. 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.

Версии, от которых отсчитываются формулировки (август 2026)

Если материал где-то расходится с этой таблицей — верьте таблице и официальным 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 в бете

Как пользоваться

  1. Пройдите 01-checklist.md и честно отметьте текущий уровень по каждому пункту — получите карту пробелов.
  2. Возьмите план из 02-plan.md под свой срок и подставьте в него найденные пробелы.
  3. Каждую неделю проверяйте себя вопросами из 03-question-bank.md вслух, вживую, без подглядывания.
  4. Параллельно, а не в конце, ведите алгоритмы по Algorithms_LeetCode_Easy_Medium_Senior_Android_Guide.markdown: это единственный блок, который не нагоняется за неделю.
  5. За 2–3 недели до интервью переключите фокус на 04-system-design.md и 05-behavioral.md — это два блока, которые дают наибольшую разницу в оффере.

Веб-тренажёр

В каталоге web находится адаптивное приложение для тренировок по шести основным темам и чтения всех Markdown-материалов. Инструкции по локальному запуску, проверкам и публикации на GitHub Pages находятся в web/README.md.