Резюме Android-разработчика проигрывает простыне библиотек: Retrofit–Dagger–Rx–Compose–MVI без приложения, которое можно открыть с телефона за одну минуту без пароля и без VPN. Рекрутер ищет Kotlin, один продукт, архитектуру в рамках вашего вклада, ограничения магазина и ссылку на GitHub или стор — не каталог Jetpack из курса. Один экран, который можете разобрать вслух на созвоне, сильнее двадцати логотипов Jetpack. Flutter в native-слот не маскируйте: тестовое будет про ViewModel и жизненный цикл Activity, не про виджеты Flutter.
Ниже — как собрать резюме Android-разработчика: заголовок, приложение, пули, два заполненных примера, что не писать про «нативные приложения и материалу». Каркас — в как составить резюме. Пули — в как описать опыт. Вход — в как стать Android-разработчиком. Соседний вход в мобилку шире — как стать mobile-разработчиком. Java backend — другой файл: резюме Java. После сборки — проверка резюме: простыня библиотек без экрана всплывает сразу. Ссылку на приложение проверьте с телефона до отклика.
Коротко:
- Заголовок = Android + Kotlin, не «Java/Kotlin/Android/Flutter».
- Одно приложение в шапке: стор или GitHub с README. Весь профиль не смотрят.
- Пули: экран, данные, офлайн, падение, релиз — не список библиотек.
- Compose/XML, корутины, DI — только если готовы разобрать на созвоне.
- Ограничения магазина и размер APK/AAB пишите, если это была задача, не «публиковал в Google Play» без факта.
Что смотрят за 15 секунд
- Kotlin-продукт или учебный ToDo на Java 2019 года?
- Есть ли приложение в сторе / репозиторий с архитектурой, а не один Activity?
- Сеть, БД, фон, авторизация — или только вёрстка?
- Flutter/React Native в шапке при слоте native?
- Грейд: пет-проект на слот с многомодульностью и CI?
Карточка — резюме IT-специалиста. Стек — стек. Summary — summary. Без штата — резюме без опыта.
Структура
Шапка: Android, Kotlin, город / UTC, ссылка на приложение. Summary: тип приложения (заказы, ридер, внутренний), 2 факта. Опыт. Отдельным блоком приложение, если оно сильнее должности. Навыки: язык и UI; данные; сеть; DI; тесты; магазин. Образование внизу.
Скриншоты в PDF не заменяют ссылку. Видео с эмулятора без репозитория слабо. NDA: опишите экраны и ваш модуль без данных клиентов. Проекты — проекты в резюме. Remote — удалёнка.
Заголовок и стек без каталога Jetpack
Было. Android-разработчик. Java, Kotlin, XML, Compose, MVP, MVVM, MVI, Dagger, Hilt, Koin, RxJava, Coroutines, Flow, Retrofit, OkHttp, Room, Realm, Firebase, Play Billing, CI. Material Design.
Стало. Android, Kotlin, кабинет заказов. MVVM, Retrofit, Room, корутины. Приложение в сторе / GitHub: [ссылка]. Compose в проде не вёл — XML. Ростов-на-Дону / UTC+3, remote.
Вычеркните архитектурные аббревиатуры, которые не защитите на доске. Одна архитектура в фактах сильнее пяти в списке.
Какие пули читают
Пишите экран и ограничение платформы:
- список, мастер, карта, пуш, оплата — что доводили;
- офлайн / очередь запросов / конфликт синхронизации;
- падение: Crashlytics, что починили, не «снизил crash-free на 5%» без базы;
- размер, время старта, утечка — если мерили;
- релиз: трек, подпись, что ломалось в ревью магазина;
- модуль: ваш кусок, не «команда выпустила приложение».
Не «работал с Retrofit». «Повтор заказа при 409: пользователь видит текст ошибки, не пустой тост». Канцелярит — ошибки в резюме.
Пример 1. Junior, одно приложение
Вакансия: junior Android, Kotlin, REST, Git, тестовое на экран.
Junior Android, Kotlin. Учебное приложение заказов — GitHub и apk: [ссылки]. Коммерческого штата нет.
Список заказов + фильтр статуса. Пустое состояние и ошибка сети — отдельные экраны, не белый список.
Форма заказа: валидация, повтор отправки не дублирует заказ на mock API. Room как кэш списка, в README — без настоящей синхронизации конфликтов.
Корутины + ViewModel. Hilt не подключал: ручные зависимости, так и написано.
Play Console не публиковал: подпись и трек в README как «не сделано». К тестовому на экран списка готов на этой неделе.
Честные границы. Надутый Play Billing без публикации вскрывается сразу. Публикация в сторе — плюс, не обязанность junior, если репозиторий читаемый.
Пример 2. Продуктовое приложение
Вакансия: Android, Kotlin, поддержка приложения в сторе, сеть, релизы.
Android, Kotlin, B2B-заказы. 2,5 года. Стор: [ссылка]. Remote, UTC+3.
Собрал мастер создания заказа: черновик в локальной БД, ошибка API не затирает шаги. Менеджеры перестали перепечатывать поля после обрыва сети.
Починил падение на пустом списке отгрузок после смены контракта API. Crash в трекере, фикс, релиз hotfix. Повторов по этой стеке не было.
Ужал тяжёлые картинки статусов: размер AAB перестал упираться в лимит внутреннего тестирования. Это задача магазина, не «оптимизировал производительность».
Ревьюил PR по экрану заказа. Compose в этом модуле нет — XML + ViewModel. Не обещаю Flutter.
Магазинные ограничения здесь уместны, потому что были задачей. Не копируйте это, если вы только заливали apk через CI, который собрал другой человек: напишите «релиз через пайплайн команды, мой кусок — changelog и прогон экрана заказа».
Java, Compose, мультиплатформа
Java Android — можно в опыте, если сопровождали. Шапка Kotlin, если на нём тестовое. Compose — факт экранов, не курс. KMP/Flutter — отдельный акцент или отдельный файл, иначе native-слот вас снимет.
После сборки — проверка резюме. Красный флаг: 25 библиотек, ноль экранов.
Письмо и собеседование
Письмо указывает на приложение и один экран: сопроводительное, без опыта, генератор. Тестовое часто «экран + ViewModel»: тестовое. Интервью — interview-prep, рассказ о приложении — как рассказать о проекте. Тишина — почему не отвечают: часто Flutter-слот или backend Java при Android-файле без фильтра.