Мобильная разработка в 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.