Android-разработчиком в 2026 становятся не после списка библиотек в резюме, а после одного приложения, которое можно поставить, сломать и объяснить. Kotlin — рабочий язык входа. Java на Android ещё жива в легаси, но начинать новый учебный проект на Java в 2026 почти всегда хуже, чем на Kotlin, если вакансия не про поддержку старого контура.
Ниже — какой минимум стека, какое одно приложение считать доказательством, что писать в резюме и какие junior-слоты ещё живые. Зарплатных медиан нет: вилку собирайте по вакансиям Android.
Коротко:
- Одно законченное приложение сильнее пяти брошенных туториалов. Стор не обязателен, но демо-APK или GitHub с инструкцией — да.
- Стек входа: Kotlin, Android SDK, навигация, сеть, локальные данные, Git. Jetpack не как религия, а как то, что в вакансиях.
- Не учите сразу Compose и XML «на всякий случай» в равной мере: выберите то, что повторяется в ваших слотах, второе — потом.
- Кроссплатформа (Flutter/KMP) — другая развилка. Сначала натив, если цель — Android-вакансии. Общий мобильный выбор: как стать мобильным разработчиком.
- Junior+remote узкий. Смотрите intern, гибрид, «Android developer» без слова middle.
Чем Android-разработчик занят в первый месяц
Первый месяц: экран по макету, список, детали, запрос к API, обработка ошибки сети, не забыть жизненный цикл, не уронить приложение поворотом. Редко — своя архитектура «как в FAANG» и свой дизайн-система. Если вам интересны только анимации и неинтересны разрешения, фон, грустная сеть в метро — роль будет тереть.
В продукте часто один приложение на годы. В аутсорсе — чужие кодовые базы и сжатые сроки. На входе покупают человека, который не боится чужого Activity и умеет задать вопрос до рефакторинга всего модуля.
Не путайте с iOS: другая платформа, другой магазин, другой найм. Путь Apple: как стать iOS-разработчиком. Не путайте с frontend: похожая голова про UI-состояния, другой рантайм и магазин.
С нуля, из Java, из другой мобильной роли
С нуля реалистичный горизонт при 10–15 часах в неделю — много месяцев до вменяемого приложения, не баннер «оффер за 90 дней». Если уже пишете Kotlin/Java на backend, вход быстрее: язык знаком, не знаком Android. Если уже верстаете веб — переносите состояния, учите жизненный цикл и систему ресурсов с нуля, не «HTML в WebView как портфолио».
Из iOS переход возможен, но это новая платформа, не «подкрутить синтаксис». Работодатель Android не зачтёт ваш Swift как Kotlin. Нужен Android-артефакт. Из Flutter — покажите, что понимаете нативный контур, если целитесь в нативные вакансии.
Без приложения не спасает письмо. Сначала артефакт: резюме без опыта.
Стек: что обязательно, что можно не класть в skills
Выпишите повторяющееся из junior-вакансий:
- Kotlin, null-safety, корутины хотя бы на уровне «запрос не блокирует UI»;
- экраны, навигация, RecyclerView или лента в Compose;
- Retrofit/Ktor или аналог, обработка 401/500, пустой список;
- Room / DataStore — одно локальное хранение;
- Git, Gradle на уровне «собрал, не сломал»;
- минимальная архитектура: разделение UI и данных, не обязательный «чистый Clean на 20 папок».
Compose vs View: смотрите слоты. Если junior сплошь Compose — не сидите вечно в XML. Если легаси View — уметь прочитать layout полезно. Можно отложить: свой SDK, сложный NDK, Wear, свой DI-фреймворк «для резюме», публикация в пять стран с подписками. Навыки шире по мере роста закладывайте в проект, не в список желаний. Резюме: резюме Android-разработчика.
90 дней: одно приложение, не десять модулей курса
- Дни 1–25. Kotlin + два экрана без сети: список и деталь, сохранение простое. Если Activity путаете — не переходите к архитектуре из блога.
- Дни 26–55. Сеть, ошибки, обновление списка, одно локальное кэширование. README: как собрать, какие разрешения, чего нет.
- Дни 56–75. Полировка: пустые состояния, конфигурация экрана, базовая доступность текста. Тесты хотя бы на ViewModel/репозиторий — плюс. Подпись APK для демо.
- Дни 76–90. Резюме, демо-ссылка, 15 точечных откликов, подготовка к живому коду списка.
Критерий: ставите APK на телефон, проходите сценарий офлайн/ошибка сети, объясняете поток данных без «так в туториале». Стор — бонус, если проходите модерацию. Необязателен для первой работы, если GitHub честный. Не публикуйте чужие ключи и не копируйте дизайн банка один в один.
Пример 1. Учебное приложение списка заказов
Вакансия: junior Android, Kotlin, REST, Git, коммерческий опыт не обязателен.
Приложение «мои заказы». Список с фильтром статуса, деталь, обновление по свайпу, экран ошибки сети с повтором. Стек: Kotlin, Jetpack Compose, Retrofit, Room как кэш, Coroutines. Учебный API. Нет оплаты, нет пушей, нет своего бэкенда. В README: как собрать, minSdk, что не сделано. APK в Releases.
Сделано мной: маппинг DTO, обработка пустого списка, сохранение фильтра. Архитектура простая: UI → ViewModel → repository. Не выдаю это за production-банк.
Это закрывает экран. «Клон Instagram на 40 экранов» без запуска — нет.
Пример 2. Было / стало в резюме
До:
Android-разработчик. Java, Kotlin, Compose, XML, MVVM, MVI, Clean, Dagger, Hilt, Koin, RxJava, Coroutines, Firebase, Google Maps. Ищу Android / Flutter / Kotlin backend.
После:
Junior Android (Kotlin). Учебное приложение заказов: Compose, Retrofit, Room, корутины. APK и код: [ссылки]. XML-View, Flutter, Dagger не использую. Коммерческого стажа нет. Готов к тестовому на 4–8 часов в Kotlin.
Как описывать проект: проекты в резюме. Стек по факту: указание стека.
Какие junior-слоты ещё живые и как откликаться
Ищите junior Android, intern, trainee, Kotlin Android. Читайте стек: Compose-only vs легаси. Если ждут 3 года, Play Console, свой SDK и дежурства — не вход. Каталог: вакансии Android, junior, иногда общий mobile.
Письмо: роль, сценарий приложения, ссылки, готовность к тесту. Письмо без опыта, черновик: генератор. Тестовое: экран + список + сеть. Не клон прода за выходные. Тестовое.
Собеседование: Kotlin, жизненный цикл, чем LiveData/StateFlow, как не блокировать UI, как кэшировали. Готовьте приложение как историю. Рассказ о проекте, вопросы.
Вилка — фильтры каталога. Удалёнка junior Android реже офиса. Ожидания, проверка вакансий: мошенники.
Как готовить приложение к созвону и тестовому
Перед скринингом поставьте свой APK на чистое устройство или эмулятор с вайпом. Пройдите сценарий сами, как рекрутер: установка, первый экран, список, деталь, выключение сети, повтор. Если падает — чините до отклика, не «расскажу, что планировал». На созвоне просят расшарить студию или гит. Откройте заранее тот класс, где сеть и кэш, не манифест на 200 строк разрешений «на всякий случай».
Заготовьте рассказ на три минуты: зачем приложение, какой поток данных, что ломалось, что сознательно не сделали. Не начинайте с «использовал Retrofit и Hilt». Начинайте с пользовательского сценария. Если спросили про архитектуру — нарисуйте три коробки, не десять слоёв из блога. Если спросили про Compose vs View — скажите, что выбрали по вакансиям и что умеете читать второй, если он в легаси. Честность здесь дороже модного стека.
Тестовое часто «список из API + деталь + ошибка». Укладывайтесь в время: работающий список важнее своего DI. В README тестового: как собрать, minSdk, что не успели. Не прикладывайте ключи. Если бриф молчит про офлайн — сделайте хотя бы сообщение об ошибке, не бесконечный прогресс. После сдачи одно письмо со ссылкой на репозиторий и APK, если просили.
В резюме одна ссылка на приложение сверху, стек из него, не Flutter «на будущее». Если есть коммерция под NDA — опишите экраны словами и дайте публичный учебный репозиторий как то, что можно открыть. Как в iOS-логике показа кода: публичное доказательство обязательно. Файл резюме: резюме Android, разбор CV. Если тишина — проверьте, ставится ли APK у другого человека, а не меняйте Kotlin на Java ради хайпа.
Частые вопросы
Нужен ли Google Play?
Нет как обязательный билет. Да как плюс: вы видели подпись, политику, крэши. Без стора достаточно APK + GitHub. Не публикуйте сырое приложение ради галочки, если оно падает на старте.
Compose или XML?
То, что в целевых junior-вакансиях. Второе читайте, не обязательно второе портфолио.
Стоит ли идти в Flutter, чтобы «больше вакансий»?
Только если целитесь в Flutter-слоты. Смешение трёх стеков до первого приложения — распыление. Выбор платформы.
Какой компьютер нужен?
Машина, которая тянет Android Studio и эмулятор, либо физический телефон. Слабый ноутбук без телефона замедлит вход сильнее, чем «не тот курс».
Нужна ли математика и алгоритмы?
На части собеседований — живой код списка и фильтра, не олимпиада. Если вакансия явно про алгоритмы — готовьтесь точечно. Не заменяйте приложение leetcode.
Берут ли без коммерческого опыта на удалёнку?
Редко. Смотрите intern и гибрид. Junior remote.
Чек-лист приложения перед рассылкой
- APK или инструкцию сборки открывает другой человек без вашего голоса за спиной.
- Сценарий «список → деталь → ошибка сети» проходит на эмуляторе и желательно на телефоне.
- README: minSdk, как собрать, что сделано вами, чего нет.
- В skills нет Flutter, Dagger, Clean и карт, которых нет в проекте.
- Заголовок junior Android / intern, не middle.
- Письмо с ролью, ссылками и готовностью к тесту 4–8 часов.
- Вы за 3 минуты рассказываете поток данных, не список библиотек.
- Секреты и чужой бренд в репозитории не лежат.
Если приложение падает на старте, отклики вредны: вы сами закрыли воронку. Если ставится — откликайтесь на junior Kotlin, intern, иногда на общий mobile, читая натив vs кроссплатформа. Не рассылайте одно резюме на Flutter и на Android без следа Flutter. Собеседование готовьте по своему репозиторию: корутины там, где у вас запрос, кэш там, где Room. Общие списки вопросов — только чтобы найти дыру в своём коде. Подготовка: interview-prep, файл: резюме Android.
На неделе поиска не меняйте Compose на XML и обратно. Доведите один стек. Если все слоты в вашем городе — легаси View, добавьте чтение layout, не обязательно второе портфолио. Если слоты Compose — не сидите в XML из страха. Каталог на эту неделю: вакансии Android.
Что сделать сейчас
Откройте пять Android-вакансий junior. Выпишите Kotlin/Compose/View и первую задачу месяца. Сегодня создайте проект с одним списком на телефоне или эмуляторе. Не новый интенсив. Если студия не ставится — сначала железо и эмулятор, иначе 90 дней уйдут в ожидание, а не в экраны.
Когда появится APK и README, соберите резюме вокруг этого приложения, разбор CV, точечные отклики. Второй фреймворк не начинайте, пока сценарий «список → деталь → ошибка сети» не объясняется вслух. На созвоне откройте класс с сетью, не манифест с лишними разрешениями.
Если через две недели тишина, проверьте, ставится ли APK у другого человека, совпадает ли заголовок с junior, не кормите ли вы middle-wishlist. Вилку на скрининге берите из фильтров каталога. Кроссплатформу не добавляйте «для количества вакансий», пока нет нативного артефакта. Общий выбор платформы, если ещё сомневаетесь: как стать мобильным разработчиком.