Разработчик мобильных приложений: чем занимается, какие навыки нужны и как учиться
Разработчик мобильных приложений пишет программы для смартфонов и планшетов на Android и iOS и доводит их до пользователя через магазины приложений. Одни специалисты работают нативно — на Kotlin под Android или на Swift под iOS, другие пишут один код сразу для двух платформ на Flutter, React Native или Kotlin Multiplatform. При любом стеке нужно понимать жизненный цикл приложения, работу без сети, обновления и правила публикации в Google Play, App Store и RuStore.
Содержание
Словами «мобильный разработчик» в вакансиях называют очень разных людей. В банке это Android-программист, который пятый год развивает одно приложение на Kotlin. В небольшой студии — человек, который за три месяца собирает на Flutter приложение для сети кофеен сразу под обе платформы. Нативным профессиям на сайте посвящены отдельные статьи про Android- и iOS-разработчика; здесь речь о том, что объединяет всех мобильных программистов и как выбрать между нативным и кроссплатформенным путём.

Что делает мобильный разработчик
Работа начинается с макета и описания задачи: дизайнер показывает экраны, аналитик или менеджер продукта объясняет, что должно происходить при нажатии каждой кнопки. Разработчик превращает это в код: собирает интерфейс, подключает приложение к серверу через API, сохраняет данные на устройстве, обрабатывает ошибки и медленную сеть. Затем пишет тесты, проходит код-ревью, собирает релизную сборку и отправляет её на проверку в магазин приложений.
Заметная часть работы — поддержка. Приходят отчёты о сбоях, выходит новая версия Android или iOS и меняет поведение уведомлений. Разработчик воспроизводит ошибку на конкретной модели телефона и выпускает исправление, а в команде договаривается с бэкенд-разработчиками о формате данных, с дизайнером — о том, что позволяет платформа, с тестировщиком — о сценариях проверки.
Нативно или кроссплатформенно: четыре пути
Нативная разработка означает, что под каждую платформу пишется своё приложение её родными средствами: под Android — на Kotlin с Jetpack Compose, под iOS — на Swift со SwiftUI. Так получают полный доступ к возможностям системы и привычное пользователю поведение интерфейса, но и две кодовые базы, которые приходится поддерживать параллельно, часто двумя командами.
Кроссплатформенные технологии сокращают дублирование, каждая по-своему.
| Подход | Язык | Общая часть для двух платформ |
|---|---|---|
| Нативная разработка | Kotlin, Swift | ничего: два отдельных приложения |
| Flutter | Dart | интерфейс и логика, фреймворк сам рисует экраны |
| React Native | JavaScript, TypeScript | логика и компоненты, которые превращаются в системные элементы интерфейса |
| Kotlin Multiplatform | Kotlin | бизнес-логика, а интерфейс — по выбору: нативный или общий на Compose Multiplatform |
Flutter близок по духу к игровому движку: он отрисовывает интерфейс сам, поэтому приложение выглядит одинаково на обеих платформах. React Native удобен командам, у которых уже есть веб-разработчики на React. Kotlin Multiplatform позволяет вынести в общий модуль сетевой слой, хранение данных и расчёты, а экраны оставить нативными; с мая 2025 года JetBrains объявила стабильной и общую библиотеку интерфейса Compose Multiplatform для iOS.
Сравнить подходы на практике проще всего, если собрать одно и то же приложение двумя способами. Такую связку предлагает комплект курсов Merion Academy «iOS-разработчик с нуля» и «Разработка приложений на Flutter и Dart»: сначала Swift и SwiftUI с публикацией в App Store, затем Dart и Flutter со сборкой под обе платформы, по одному итоговому проекту на каждой части. Обучение асинхронное, с бессрочным доступом к материалам, поэтому темп и дисциплину придётся держать самостоятельно.
Учебный пример: показания счётчиков в подвале без сети
Учебная ситуация. Управляющая компания заказывает приложение для своих сотрудников: обходчик спускается в подвал, фотографирует счётчики воды, вводит показания и идёт дальше. Приложение нужно и на Android, и на iOS, бюджет — на одну небольшую команду, поэтому выбирают Flutter.
Первая трудность — сети в подвале нет. Разработчик сохраняет каждое показание и фотографию в локальную базу на телефоне, ставит отметку «не отправлено» и отправляет данные на сервер, когда связь появится. Если за это время кто-то исправил запись в офисе, нужно заранее решить, чья версия важнее, иначе показания потеряются. Вторая трудность — жизненный цикл: пока обходчик снимает фото, система может выгрузить приложение из памяти, и после возвращения форма должна открыться с уже введёнными цифрами. Третья — обновления: половина сотрудников месяцами не обновляет приложение, поэтому сервер обязан понимать и старую версию, а для критических исправлений разработчик предусматривает экран с просьбой обновиться.
Потом заказчик просит распознавать цифры со снимка автоматически. Команда подключает готовую библиотеку распознавания, и в проекте появляется код на C++. К чему это приводит при публикации, покажем ниже.
Что общего у всех мобильных разработчиков
Независимо от языка, мобильный программист работает в условиях, которых нет у веб-разработчика. Приложение не управляет своим временем жизни: система приостанавливает и закрывает его, когда захочет, и данные нужно сохранять заранее. Пользователь сам решает, обновляться ли, поэтому у пользователей одновременно работают несколько версий приложения, и ошибка, выпущенная сегодня, будет встречаться ещё долго. Сеть ненадёжна: лифт, метро, роуминг, и каждое действие нужно продумывать на случай обрыва.
Отдельный навык — публикация. У Google Play, App Store и RuStore свои консоли, свои правила проверки и свои сроки. Для российского рынка к двум глобальным магазинам добавился RuStore: публикация там бесплатна, принимаются файлы APK и AAB, а каждая новая версия должна быть подписана тем же ключом, что и предыдущая, и иметь больший номер версии. Потерянный ключ подписи означает, что обновить уже опубликованное приложение не получится, поэтому хранение ключей — такая же часть профессии, как написание кода.
Для навыков публикации и поддержки хорошо подходит учебный проект, прошедший весь путь до магазина. На курсе TeachMeSkills «Мобильный разработчик на Flutter» за 3,5 месяца вечерних занятий проходят Dart, Git, пять подходов к управлению состоянием (Provider, BLoC, Redux, MobX, Riverpod), работу с REST API и Firebase, локальное хранение и публикацию в Google Play и App Store; практика — три приложения, включая дипломное. Учтите, что для выкладки в App Store понадобятся компьютер Apple и платный аккаунт разработчика, и за 104 академических часа все пять подходов к состоянию глубоко не освоить — один-два стоит доработать самостоятельно.
Где кроссплатформа упирается в нативный код
Популярное представление о кроссплатформенной разработке звучит так: пишешь на Dart или JavaScript, а платформенные тонкости берёт на себя фреймворк. Требование Google Play о страницах памяти размером 16 КБ хорошо показывает, где это перестаёт работать.
С Android 15 устройства могут использовать страницы памяти по 16 КБ вместо привычных 4 КБ; Google приводит ускорение запуска приложений на 3–30 % и экономию заряда в среднем на 4,5 %. Там же объявлено, что с 1 ноября 2025 года новые приложения и обновления, нацеленные на Android 15 и выше, должны поддерживать такие страницы. В документации Android, обновлённой в сентябре 2026 года, срок для обновлений указан жёстко: с 1 февраля 2027 года выпустить в Google Play обновление без поддержки 16 КБ будет нельзя.
Важная деталь — кого это касается. По той же документации приложение, написанное только на Kotlin или Java вместе со всеми библиотеками, уже совместимо и ничего делать не нужно. Затронуты приложения с нативным кодом на C или C++, в том числе когда он пришёл через сторонний SDK или конструктор приложений. Кроссплатформенные фреймворки как раз поставляют свой движок в виде нативных библиотек — файлов .so, которые видны в папке lib в APK Analyzer. Поэтому Flutter- или React Native-приложение без единой строки на C++ всё равно зависит от того, собраны ли его библиотеки с выравниванием 16 КБ. React Native заявил полную поддержку начиная с версии 0.77, Google в своём объявлении отметил, что совместимые версии есть и у Flutter. Но устаревший фреймворк или плагин распознавания, камеры, карт или шифрования со старой .so-библиотекой способен сделать приложение несовместимым: на новом устройстве оно либо откроется в режиме совместимости с предупреждением, либо упадёт при запуске.
В учебном примере со счётчиками именно так и происходит: общий код на Dart в порядке, а библиотека распознавания собрана старым NDK. Разработчик проверяет сборку утилитой zipalign и ищет обновлённую версию библиотеки или просит поставщика её пересобрать. Вывод для выбора профессии: кроссплатформенному разработчику тоже нужно понимать Android и iOS хотя бы на уровне сборки.
Чем мобильный разработчик отличается от соседей
Нативный специалист глубже знает одну платформу, кроссплатформенный отвечает сразу за две и чаще решает задачи на их стыке. От фронтенд-разработчика мобильного отличают магазины приложений, офлайн-режим и то, что исправление нельзя просто выкатить — пользователь должен его скачать; React Native эту границу размывает: через него удобно перейти из веба в мобильную разработку. Бэкенд-разработчик готовит API для приложения; мобильному программисту полезно понимать сервер, но писать его обычно не требуется.
Сколько зарабатывает разработчик мобильных приложений
По исследованию «Хабр Карьеры» за первую половину 2026 года (45 226 зарплат из калькулятора сервиса) медианная зарплата разработчиков мобильных приложений составила 320 000 ₽ в Москве, 299 000 ₽ в Санкт-Петербурге и 263 000 ₽ в других городах; медиана по всей IT-отрасли — 191 000 ₽. Это данные самих специалистов, а не вилки из вакансий, причём все уровни — от стажёров до ведущих — сведены вместе, поэтому новичку на такие цифры ориентироваться не стоит.
Отдельных цифр по Flutter и React Native в этом отчёте нет: Dart в списке языков не упоминается. Чтобы понять рынок для своего стека, откройте вакансии с фильтром по навыку, городу и опыту и смотрите на нижнюю границу вилок для позиций без опыта. Проверяйте, указана сумма до вычета налога или на руки, и сравните число вакансий по навыкам Flutter, React Native и Kotlin в своём городе: от этого зависит, насколько широк будет выбор на первом поиске работы.
Что может оказаться сложным
Первое — постоянные изменения. Google и Apple ежегодно выпускают новые версии систем и меняют требования магазинов, фреймворки выходят несколько раз в год, и приложение, которое никто не трогал полгода, может перестать собираться. Второе — железо: для сборки под iOS нужен Mac, для проверки на Android — хотя бы пара реальных устройств разных производителей. Третье — отладка на стыке: ошибка может сидеть в вашем коде, во фреймворке, в плагине или в системе. Если хочется выпускать исправления за минуты, веб-разработка может подойти лучше.
Как выбрать стек для старта
Начинать удобнее с ответа на вопрос, где вы хотите работать. Если цель — большая продуктовая компания или банк, логичнее идти в нативную разработку и выбрать одну платформу: Android дешевле на старте, потому что достаточно любого компьютера и недорогого телефона. Если вас интересуют студии, заказная разработка или собственный проект, быстрее даст результат Flutter. Если вы уже пишете на JavaScript, React Native позволит использовать знакомый язык. Kotlin Multiplatform опирается на Kotlin и инструменты Android, поэтому его логичнее изучать вторым шагом, после нативной базы.
Базу можно проверить бесплатно: пройдите официальный учебник Flutter или Kotlin, соберите простое приложение со списком и экраном подробностей и запустите его на своём телефоне. Если за пару недель это не надоело, стоит выбирать платное обучение. Сравнить онлайн-школы по программам, формату и цене поможет рейтинг онлайн-школ с обучением мобильной разработке: в нём собраны и нативные, и кроссплатформенные программы.
При выборе онлайн-курса смотрите не на список технологий, а на то, что придётся сделать руками: будет ли приложение, работающее без сети, подключение к настоящему API, публикация хотя бы во внутреннее тестирование магазина и код-ревью от практикующего разработчика. Проверьте и уровень: программа «с нуля» и программа для тех, кто уже пишет код, по-разному распределяют время на основы языка.
Что показать работодателю
Работодателю важнее всего увидеть законченное приложение, а не набор учебных упражнений. Хороший вариант — одно-два приложения в открытом репозитории на GitHub с понятным описанием, скриншотами и инструкцией по сборке, а если получится — опубликованные в RuStore или Google Play. Покажите в проекте то, что отличает мобильную разработку: работу без сети, сохранение состояния, обработку ошибок сервера, несколько тестов.
Если вы выбрали нативный путь, учебный проект стоит строить вокруг одной платформы и довести его до уровня, близкого к рабочему. Так устроен, например, курс «Android-разработчик» Яндекс Практикума: за год обучения студенты начинают с Java, переходят на Kotlin, собирают музыкальный плеер Playlist Maker с поиском и плейлистами, используют Room, корутины, MVVM и внедрение зависимостей, а затем делают агрегатор вакансий в команде. Публикация в магазине в обзоре программы не упомянута, поэтому этот шаг стоит сделать самостоятельно — хотя бы в RuStore, где она бесплатна.