Мобильная разработка в 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. Недели 1–3. Среда, первый список, переход на деталь. Ежедневная сборка, не «ещё курс по архитектуре».
  2. Недели 4–7. Сеть, загрузка, ошибка, повтор. Состояние экрана. Простой локальный кэш, если тянете.
  3. Недели 8–10. Форма, валидация, полировка пустых состояний. README. Запись видео 60 секунд сценария — необязательно, но помогает письму.
  4. Недели 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 сознательно.