Мобильная разработка в 2026-м не требует учить Android, iOS и Flutter одновременно. Нанимают за одну платформу, один законченный клиент и умение объяснить жизненный цикл экрана, сеть, состояние и магазинный или GitHub-артефакт. Резюме «Mobile Developer, всё умею» на старте слабее узкого: Kotlin или Swift или один кроссплатформенный стек — с приложением, которое открывается.
Ниже — как выбрать платформу, какой один артефакт закрывает сомнение и как читать junior-вакансии, чтобы не слать файл на native senior и на «верстальщик лендингов» сразу.
Коротко:
- Одна платформа на квартал. Вторая — после оффера или после живого проекта, не параллельно с нуля.
- Артефакт: приложение с 3–5 экранами, сетью, ошибками, README, лучше ещё и сборка.
- Публикация в сторе — плюс, не обязательный билет. GitHub с воспроизводимой сборкой обязателен чаще.
- Кроссплатформа не короче native, если вы не доводите продукт. Это другой стек, не экономия.
- Смотрите задачи вакансии: клиент, релизы, стор — не слово Mobile в маркетинговом приложении без кода.
Кому этот вход подходит — и кому нет
Подходит, если вам интересен клиент в руке: экраны, жесты, сеть, магазинные ограничения. Сильный старт: уже есть язык (Kotlin, Swift, Dart или JS) и железо для ежедневной сборки. Слабый старт: учить три платформы параллельно с телефона, без компьютера для iOS, и ждать, что «кроссплатформа закроет всё».
Не подходит, если вам ближе вёрстка сайтов — честнее frontend. Не подходит вакансия «менеджер мобильного приложения» без кода. Не подходит senior-слот «весь клиент с нуля, пять лет, онколл» как цель первой рассылки: вы сожжёте недели и самооценку.
Публикация в сторе — плюс к разговору, не единственный билет. Репозиторий со сборкой закрывает больше junior-ревью. Сертификаты магазинов и Associate-экзамены не заменяют экраны с ошибкой сети. Мак для iOS нужен до отбора, не «после оффера».
Как выбрать платформу без мифа «что перспективнее»
Откройте вакансии мобильных разработчиков в вашем целевом формате (СНГ, удалёнка, язык команды) и посчитайте, чего больше в задачах: Kotlin, Swift, Flutter, React Native. Не средняя зарплата из статьи, а глаголы и стек в объявлениях.
Android. Часто шире вход в СНГ-продукте и аутсорсе. Kotlin, Gradle, один экранный поток. Отдельный глубокий путь: как стать Android-разработчиком.
iOS. Нужен Mac для нормальной работы. Swift, Xcode, внимание к гайдлайнам. Путь: как стать iOS-разработчиком. Без мака «учу по видео» обычно застревает.
Кроссплатформа. Имеет смысл, если вакансии, на которые целитесь, явно на Flutter или RN, или у вас уже сильный JS/React. Иначе вы получите два компромисса и ни одного native-ревью. Не выбирайте Flutter только потому, что «один код на два стора»: сторы, плагины, производительность всё равно придётся понимать.
Критерий выбора: где вы можете собирать проект каждую неделю на своём железе и где в ленте есть junior-слоты с наставником.
Какой один артефакт считать достаточным
Не клон Instagram. Узкий сценарий: трекер привычек, список заказов, учебный клиент к публичному API, локальный дневник с синхронизацией-заглушкой.
- Навигация, список, деталь, форма, пустое и ошибочное состояние сети.
- Понятная архитектура на уровне «куда кладу сеть и состояние», не обязательно идеальный Clean на 40 папок.
- Без секретов в репозитории. Без чужих ключей.
- README: как собрать, какая версия SDK, что не сделано (оплаты, пуши, оффлайн).
Стор: если готовы пройти модерацию — хорошо, это разговор на собеседовании. Если не готовы — не зависайте на сертификатах разработчика вместо фичи. Рекрутер junior чаще откроет репозиторий, чем будет ставить приложение из стора в рабочее время.
Не прикладывайте десять полуживых клиентов. Один доведённый сильнее.
Перед рассылкой дайте репозиторий человеку со стороны: собирается ли, видна ли ошибка сети, понятно ли из README, чего нет. Если сборка только у вас из-за локальных путей и версии SDK в голове, это ещё не артефакт. Запись 60-секундного сценария «список → деталь → ошибка» необязательна, но экономит минуту рекрутеру. Не заменяйте её сторис с иконкой стора без исходников, когда вакансия про код и ревью.
Стек, который не надо раздувать
Android: Kotlin, Android SDK, Retrofit/Ktor или аналог, Coroutines, одна библиотека навигации. Compose или View — тот, на котором доведёте экраны, не оба «в резюме». iOS: Swift, SwiftUI или UIKit — один основной. Кроссплатформа: один фреймворк, стейт-менеджмент, который вы объясните.
CI, Detekt/SwiftLint, модули — плюс, если работают у вас, не чеклист senior. Kotlin Multiplatform на первом квартале с нуля обычно рано.
Сертификаты Google/Apple Associate не работа. Могут быть плюсом. Не заголовок файла. Сначала клиент со сборкой, потом экзамен — если он вообще есть в вакансии. На скрининге спросят про ошибку сети, не про PDF с оценкой. Не держите в резюме три платформы «на всякий»: это читается как отсутствие роли, даже если GitHub живой.
Пример 1. 12 недель на одну платформу
Исход: слабый мобильный опыт, есть общий язык программирования. Цель — junior Android или junior iOS, не оба.
- Недели 1–3. Среда, первый список, переход на деталь. Ежедневная сборка, не «ещё курс по архитектуре».
- Недели 4–7. Сеть, загрузка, ошибка, повтор. Состояние экрана. Простой локальный кэш, если тянете.
- Недели 8–10. Форма, валидация, полировка пустых состояний. README. Запись видео 60 секунд сценария — необязательно, но помогает письму.
- Недели 11–12. Резюме под платформу, 10–15 откликов в неделю на этот стек, тестовые. Второй стор не начинать.
Если к неделе 6 нет сети на экране, проблема не в «мало паттернов». Уберите новую библиотеку из плана.
Пример 2. Письмо на junior mobile
Вакансия: junior Android, Kotlin, доработка клиентских экранов, API команды, гибрид, русский.
Откликаюсь на junior Android (Kotlin).
По вакансии нужно дописывать экраны, ходить в API и не оставлять вечный лоадер при ошибке. Собрал учебный клиент списка заказов: список, деталь, форма, пустые и ошибочные состояния, README со сборкой. Репозиторий: [ссылка]. В сторе нет — сборка из GitHub. Compose в проде команды не видел; в проекте экраны на [указать]. Готов тестовое на экран по макету на этой неделе.
Flutter и iOS в резюме не ставлю — не мой слот этой вакансии.
Узкость здесь плюс. Письмо без извинений: формула без опыта, черновик cover-letter.
Как читать junior-вакансии
В каталоге mobile отсекайте senior: онколл, «весь клиент с нуля», пять лет, публикация 10 приложений. Отсекайте не-разработку: «менеджер мобильного приложения», маркетинг.
Зелёные: существующее приложение, команда, ревью, тестовое на экран или небольшой фикс. Вилки — из фильтров каталога по грейду и платформе, не из чата «Android vs iOS кто больше платит».
Удалёнка junior mobile бывает, чаще с пересечением по времени для ревью. Стор-аккаунты и сертификаты разработчика компания обычно даёт сама; просьба оплатить «обучение публикации» на стороннем курсе — подозрительно: проверка вакансии.
Стажировки с реальным репозиторием: стажировка в IT. Тестовые безразмерные «напишите клон за две недели бесплатно»: отказ от тестового.
Резюме и интервью
Заголовок: Android Developer / Kotlin или iOS / Swift или Flutter Developer — не Mobile без платформы. Файл: резюме Android как образец структуры для native. Стек короткий: как указать стек. Проекты: описание проектов. Прогон: cv-review.
Интервью: жизненный цикл, что будет при повороте / убийстве процесса, как отменяете запрос, как храните токен, как дебажите. Рассказ о проекте: как рассказать о проекте, общая подготовка: interview-prep.
Ошибки, из-за которых приложение не открывают
Репозиторий есть, отклики идут, скринингов нет. Частые причины именно в артефакте:
- Сборка только у вас на машине, в README нет версий SDK.
- Вечный лоадер, если API недоступен. Для junior это красный флаг сильнее «не тот архитектурный паттерн».
- Секреты и ключи в git. Даже учебные, если они похожи на боевые.
- Три платформы в резюме и ни одного целого клиента.
- Скрин стора без исходников, когда вакансия про код и ревью.
До/после заголовка:
Было: Mobile Developer. Android, iOS, Flutter, React Native, Firebase, Swift, Kotlin. Готов к любым задачам.
Стало: Android-разработчик / Kotlin. Учебный клиент заказов: список, деталь, форма, ошибки сети. Ссылка на репозиторий и как собрать. iOS и Flutter не заявляю.
Второе можно проверить. Первое нельзя.
Неделя поиска: фильтр платформы в каталоге mobile, 10–12 объявлений с клиентским кодом. Письмо — экраны, сеть, ссылка. Не пишите «быстро выучу Swift», если слот Android: выглядите как человек без роли. Если тестовое — клон большого приложения на две недели, сужайте рамку или отказывайтесь. Формат нормального теста: один экран по макету, обработка ошибки, без публикации в стор за свой счёт.
Железо: Android собирайте на том, что у вас есть. iOS не планируйте «когда куплю Mac после оффера» — отбор раньше. Кроссплатформу не используйте как способ обойти отсутствие мака, если целевые вакансии native iOS: на ревью всё равно спросят платформенные детали.
Частые вопросы
Flutter или native в 2026?
Тот стек, который в ваших целевых вакансиях и который вы доведёте. Нет универсального победителя. Два сразу с нуля — обычно ноль офферов. Сначала посчитайте платформы в ленте, потом железо, потом один клиент до ошибки сети.
Нужен ли Mac для Android?
Нет. Для iOS — да, для нормальной работы. Не планируйте iOS-вход без железа. Эмулятор на чужой машине раз в неделю не заменяет ежедневную сборку. Android спокойно собирается на обычном ноутбуке, если SDK и устройство или эмулятор живые.
Обязательна ли публикация в Google Play / App Store?
Нет как абсолют. Плюс для разговора. Репозиторий со сборкой закрывает больше junior-слотов, чем вечная борьба с модерацией вместо фич. Если стор всё же нужен команде, компания обычно даёт аккаунт сама — это не повод оплачивать сомнительный «курс публикации».
Берут ли без коммерческих приложений?
Иногда, с сильным учебным клиентом и тестовым. Реже на удалённую зарубежную команду. Общий фон: работа без опыта.
Стоит ли учить дизайн и Figma глубоко?
Верстка по макету — да. Полный цикл дизайнера — нет, если не целитесь в соло-роль «сам нарисую и закодю». Не размывайте заголовок.
Сертификат Associate Android Developer?
После проекта — можно. Вместо приложения — нет. Это не должность.
Что сделать сейчас
Выберите платформу по железу и по ленте вакансий. На этой неделе соберите список и деталь. На следующей — сеть и ошибка. Не начинайте второй стор.
Покажите пустое состояние и ошибку сети раньше, чем пятый экран. Рекрутер junior чаще смотрит, не зависает ли клиент, чем ваш слой «как в книге по архитектуре». Не оплачивайте сомнительные курсы публикации в стор до оффера: аккаунт обычно даёт работодатель.
Соберите резюме под одну платформу и откликайтесь на клиентский код. Слоты: каталог mobile. Если после двух недель вам ближе веба — не копите ещё и Flutter «на всякий», переключитесь в frontend сознательно.