Что это простыми словами
Mobile Developer Cross-platform (или «кроссплатформенный мобильный разработчик») — это специалист, который пишет приложения для двух мобильных платформ одновременно: iPhone и Android. Вместо того чтобы делать одну версию приложения на Swift для iPhone и вторую версию на Kotlin для Android, он пишет один код, а специальные инструменты сами превращают его в приложение и для iPhone, и для Android.
Аналогия: представьте, что вам нужно открыть два ресторана — один в Москве, второй в Питере. Обычный подход — нанять двух разных шеф-поваров, каждый готовит по своей рецептуре. Кроссплатформенный подход — один шеф-повар готовит по универсальному рецепту, а кухня адаптирует блюдо под два города. Один автор, два результата.
Официальное определение
Теперь, когда суть понятна, вот как эту роль описывают в вакансиях. Такую формулировку вы будете получать от заказчика и видеть в резюме.
«Кроссплатформенный мобильный разработчик — специалист, создающий приложения для iOS и Android на основе единого кода с использованием фреймворков кроссплатформенной разработки».
Разберём по словам. «Единый код» — одна кодовая база, которая компилируется под две платформы. «Фреймворк кроссплатформенной разработки» — инструмент, позволяющий писать один код для разных платформ. «Компилируется» — переводит написанный человеком код в формат, который понимает телефон.
Что делает за обычный день
Пишет экраны приложения: списки, карточки, формы, корзины — то же самое, что делает фронтенд-разработчик для сайта, но результат идёт на телефон. Делает так, чтобы приложение одинаково хорошо работало на iPhone и Android. Добавляет взаимодействие с камерой, геолокацией, уведомлениями — функциями телефона.
Ещё общается с бэкенд-разработчиком, чтобы данные с сервера приходили в приложение правильно, и проверяет, как приложение выглядит на разных размерах экрана — на маленьком iPhone SE и на большом Samsung Galaxy Ultra.
Из чего состоит направление
В кроссплатформенной разработке три основных подхода. Специалист обычно работает с одним из них, и переключение между ними — это новый старт.
Flutter — самый популярный вариант. Пишется на языке Dart. Создан Google, очень быстрый, с красивыми встроенными элементами. Сейчас это выбор большинства новых проектов.
React Native — пишется на JavaScript, создан Facebook. Популярен, потому что фронтенд-разработчики легко переходят в мобильную разработку. Многие крупные компании (Instagram, Discord) используют именно его.
Kotlin Multiplatform — пишется на Kotlin, создан JetBrains. Пока менее распространён, но активно растёт. Особенно силён в проектах, где уже есть бэкенд на Kotlin.
Инструменты простыми словами
Инструменты кроссплатформенного разработчика удобно разложить по четырём слоям — от самого важного при отборе к наименее важному.
Слой 1. Язык — фундамент, без него никуда.
Dart — язык, на котором пишут во Flutter. Простой и понятный, похож на JavaScript. Нужен всем, кто работает с Flutter.
JavaScript — язык, на котором пишут во React Native. Знает любой фронтенд-разработчик.
Kotlin — язык для Kotlin Multiplatform. Его же используют разработчики нативных Android-приложений.
Слой 2. Фреймворк — «школа», в которой человек работает. Это самое важное при отборе.
Flutter или React Native — рекрутеру важно понять одно: с каким фреймворком человек работал.
Expo — удобная надстройка над React Native, упрощает настройку проекта. Часто встречается в вакансиях на React Native.
Compose Multiplatform — надстройка над Kotlin Multiplatform для создания интерфейса. Часто идет вместе с Kotlin Multiplatform.
Слой 3. Библиотеки — детали внутри фреймворка. Взаимозаменяемы, отбраковывать по ним не нужно.
Bloc, flutter_bloc, Riverpod, GetX, Zustand — «склады данных», чтобы разные части приложения не путались, у кого какая версия информации.
GoRouter, auto_route, React Navigation — помощники для переходов между экранами приложения.
Dio, Axios — помощники для общения с сервером (отправка запросов, получение данных).
Hive, drift, SQLDelight — инструменты хранения данных прямо на телефоне (офлайн-режим, кэш).
Слой 4. Инструменты — не привязаны к фреймворку, осваиваются быстро.
Git — система контроля версий, хранит историю изменений кода. Знает каждый разработчик.
CI/CD (Continuous Integration / Continuous Delivery) — «конвейер сборки»: автоматическая сборка и публикация приложения. Осваивается за несколько дней.
Fastlane — инструмент автоматической публикации в App Store и Google Play. Часто спрашивают, но освоить можно за неделю.
Что взаимозаменяемо, а что путать нельзя
Flutter-разработчик и React Native-разработчик — по сути разные специалисты: опыт между ними почти не переносится, и предлагать одного на вакансию другого нельзя. Это как сравнивать разработчика на Flutter и разработчика на Kotlin Multiplatform — разные инструменты, разные навыки.
А вот библиотеки внутри фреймворка (Bloc, Riverpod, GetX; Dio, Axios; Hive, drift, SQLDelight) взаимозаменяемы — кто работал с одним, второй освоит за считаные дни. За разницу между ними отбраковывать не нужно, это частая ошибка.
Важно: кроссплатформенный разработчик ≠ бэкенд-разработчик. Бэкенд — это сервер, API, база данных. Мобильщик работает с тем, что приходит от бэкенда, но не делает бэкенд.
Уровни: junior / middle / senior
Уровень (его ещё называют грейд, от англ. grade) — это не столько годы, сколько самостоятельность.
Junior (джуниор, «джун») — делает простые экраны под присмотром старших, нужен контроль.
Middle (мидл) — берёт задачу целиком и доводит до конца сам. Самостоятельно разбирается с проблемами производительности, кэшированием, офлайн-режимом.
Senior (сеньор) — решает, как устроить проект, выбирает библиотеки, помогает младшим, разбирается с архитектурой и производительностью.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.
Как узнать роль в резюме
В резюме обычно есть раздел «стек» или «навыки» — это список технологий, которыми человек владеет. Ищите там название фреймворка (Flutter или React Native) рядом с языком (Dart или JavaScript). Хороший признак — конкретные проекты: «мобильное приложение для доставки еды», «интернет-магазин с кроссплатформенным мобильным приложением». Если в стеке указаны Expo, Compose Multiplatform — тоже хороший знак, человек работает с актуальными инструментами.
Обратите внимание: кроссплатформенный разработчик — это НЕ тот, кто написал одно приложение на Swift и другое на Kotlin. Если человек делал отдельные проекты под каждую платформу — это mobile-ios или mobile-android, а не кроссплатформенный разработчик.
Что спросить на первичном скрининге
С каким фреймворком работали (Flutter, React Native, Kotlin Multiplatform) и сколько именно с ним?
Нормальный ответ: «Два года на Flutter, до этого полгода на React Native». Насторожить должно, если человек одинаково уверенно называет сразу все три фреймворка за короткий срок.
Работали с состоянием приложения и навигацией?
Нормальный ответ: «Использовал Bloc для управления состоянием и GoRouter для переходов». Эти термины — индикатор реального опыта.
Расскажите про последний проект и вашу роль в нём.
Нормальный ответ: человек понятно говорит, что делал именно он — «отвечал за корзину и оплату», а не размыто «участвовал в разработке».
Знакомы с CI/CD и публикацией в магазины?
Быть знакомым — нормально, особенно на middle и выше. Но отсутствие опыта не повод отказать: это осваивается за неделю.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.
Частые путаницы и красные флаги
Кроссплатформенный ≠ нативный. Нативный разработчик пишет отдельно для iPhone (Swift) и отдельно для Android (Kotlin). Кроссплатформенный — один код на две платформы.
Flutter ≠ React Native ≠ Kotlin Multiplatform — три разных подхода, опыт между ними почти не переносится.
Kotlin ≠ Kotlin Multiplatform. Kotlin — это язык, Kotlin Multiplatform — подход к разработке. На Kotlin можно писать бэкенд, Android, а можно кроссплатформенные приложения.
Kotlin Multiplatform ≠ Compose Multiplatform. Kotlin Multiplatform — подход, Compose Multiplatform — инструмент для создания интерфейсов внутри этого подхода. Одно работает с другим, а не вместо него.
Красный флаг: «Flutter, React Native и Kotlin Multiplatform на уровне senior за один год» — так не бывает.