Мобильная разработка в 2023 году: как вкатиться и к чему быть готовым

Многообразие устройств, свои языки, постоянные обновления систем и инструментов — эти особенности мобильной разработки часто пугают новичка. Зато привлекают зарплаты: по данным habr.ru, они одни из самых высоких в IT, и из полугодия в полугодие только растут. Мобильная разработка долгое время считалась самым простым способом начать работать в IT, но правда ли создавать современные мобильные приложения сегодня так легко? И стоит ли вообще изучать нативную разработку под iOS и Android, если можно создавать кроссплатформенные приложения? Попробуем разобраться.

Мобильная разработка в 2023 году: как вкатиться и к чему быть готовым

Первые приложения для мобильных устройств появились еще в 90-х. Но мобильная разработка в том виде, который нам сейчас кажется привычным, началась в 2007–2008 годах, с появлением платформы Android, запуском AppStore для iPhone и допуском к нему сторонних разработчиков. С этого момента прошло всего 16 лет, но список навыков, знаний и технологий, которые нужны разработчику для создания приложения, успел вырасти в несколько раз.

У этого есть несколько причин.

Особенности мобильной разработки

  • Технологии постоянно меняются

Платформы и инструменты разработки регулярно обновляются, и их количество растёт. Базовый набор для Android — это языки Java и Kotlin, среда разработки (IDE) Android Studio и Android SDK (software development kit — набор инструментов разработки). Для iOS используют языки Objective-С и Swift, IDE Xcode и iOS SDK.

Некоторые обновления кардинально меняют подход к созданию приложения. Например, это случилось с недавним появлением Jetpack Compose — инструмента для создания пользовательского интерфейса в Android. Jetpack Compose использует совершенно другой подход к работе с элементами UI и в целом к организации проекта. Он сменил парадигму с объектно-ориентированного программирования, привычного для Java и Kotlin, на функциональное. И разработчикам понадобилось время, чтобы его освоить.

  • Количество устройств постоянно растёт

Это не только смартфоны и умные часы. Например, на Android работают кассовые аппараты, банкоматы, различные носимые гаджеты и так далее. В портфолио мобильного разработчика рядом с проектом онлайн-магазина вполне может оказаться приложение для умного дома или автомобильного мультимедиа. Чтобы создавать такие проекты, необходимо отличное знание операционной системы и умение работать с разными API.

  • Широкий список требований к профессии

Когда над проектом работает небольшая команда, мобильный разработчик может выступать продакт-менеджером, дизайнером, QA-специалистом и релиз-инженером в одном лице. Это сильно влияет на конечный результат и может демотивировать. С другой стороны, при желании разработчику легко сменить специальность или начать выполнять заказы в одиночку как фрилансер. Что они часто и делают.

Зарплаты — вторые по величине на рынке

Мобильные разработчики — востребованные специалисты, и это хорошо заметно по уровню заработка. По данным habr.ru за второе полугодие 2022 года, медианный уровень зарплат в этой сфере — 175 тысяч рублей в регионах и 220 тысяч в Москве. Выше только у архитекторов ПО.

Уровень зарплаты зависит не только от опыта, но и от проекта. Кроме приложений, которые человек использует каждый день, существуют сферы b2b-разработки, создание игр, приложения для автоматизации различных процессов на производстве. Например, в нефтегазе: компания СИБУР рассказывала, как создала приложение для мобильных обходов оборудования на производстве, которое считывает NFC- и Bluetooth-метки и помогает документировать неполадки. Склады — пример ещё одной сферы, где нужен софт для учёта товаров, сканирования штрих-кодов мобильными устройствами, например как у Lamoda.

Часто мобильный разработчик — это фрилансер, который делает приложения «под ключ» — от продумывания UX и бизнес-логики до релиза приложения в магазине. Оплата таких заказов на российских биржах фриланса начинается от 1000 рублей за час работы для простых задач. Причём если раньше стоимость разработки для iOS была выше, то сейчас ситуация изменилась и Android-разработка ценится не меньше iOS.

iOS vs Android: в чем отличия

Одна из сложностей Android-разработки — фрагментация системы. Во-первых, это разнообразие устройств, которые необходимо поддерживать. Например, для непропорционально длинного и тонкого смартфона придется изменить дизайн приложения, чтобы на экране была видна вся важная информация и работала навигация. Телефон без камеры потребует создания «заглушек» на тех страницах, где раньше использовался фотоаппарат, например, для считывания QR-кода. Если на устройстве используется своя оболочка Android, а не «чистая» версия от Google, некоторые функции приложения могут вести себя совсем не так, как задумывал разработчик. Всё это усложняет тестирование и отладку приложений.

Во-вторых, у Android, в отличие от iOS, нет принудительного обновления. К чему это приводит, хорошо видно по статистике: в январе этого года более 32% Android-устройств работали на выпущенной в 2018 году 9-й версии и ниже. Это значит, что многие фичи, например, из 13-й версии системы, для этих телефонов окажутся недоступны. Чтобы решить проблему, некоторые обновления Google выпускает с обратной совместимостью, то есть они поддерживаются и в старых версиях. Но в их число входят не все новые возможности, и не все из них работают корректно.

Android-разработчикам приходится быть гибкими: находить выход из разных ситуаций и постоянно обновлять свои знания. К счастью, большую часть трудностей можно предусмотреть заранее. Существуют инструменты и подходы, которые помогают создавать приложения под разные технические характеристики устройств. Android-разработчики живут с этим не как с проблемой, а как с естественной частью работы.

По данным Statcounter на май 2022 года, 71,4% мирового рынка мобильных устройств занимал Android, 27,85% — iOS. Лидерство на рынке смартфонов гарантирует разработчикам неиссякающий поток задач и востребованность у работодателей. А в случае возникновения сложностей они всегда могут обратиться к опыту коллег: ответы на большинство вопросов легко найти на Stack Overflow и других подобных форумах — у Android очень поддерживающее сообщество.

Русскоязычных iOS-разработчиков значительно меньше. Поэтому желательно знать хотя бы базовый английский, чтобы спрашивать совета у коллег. Но в отличие от Android, на iOS выпущено ограниченное число устройств, и можно быть уверенным, что на всех твой продукт работает идеально.

В 2014 году Apple представила лёгкий в освоении язык Swift, который сделал iOS-разработку ещё более доступной для новичков. Однако здесь есть свой порог входа: для работы нужен компьютер на MacOS. Аккаунт разработчика в AppStore также стоит дороже: 99 долларов в год против 25 в Google Play на всю жизнь. Впрочем, это не имеет значения, если вы не фрилансер и всем необходимым вас обеспечивает работодатель.

Будущее — за кроссплатформенными приложениями?

Google и Apple долгое время стремились увеличить разрыв между своими системами. Разработчикам приходилось два раза проделывать одну и ту же работу: создавать одинаковое мобильное приложение для разных платформ. IT-сообщество нашло способ упростить себе жизнь — и начало создавать инструменты кроссплатформенной разработки. Они позволяют выпускать приложения с одной кодовой базой, которые работают на нескольких операционных системах.

Сейчас IT переживает взлёт популярности кроссплатформенных инструментов. Самые популярные из них — фреймворки Flutter, React Native и технология Kotlin MultiPlatform.

Но это не значит, что разработка нативных приложений скоро уйдёт в небытие. В реальности потребность в Android- и iOS-разработчиках на рынке труда не стала меньше. И этому есть несколько причин:

«Не думаю, что сейчас стоит бояться конкуренции со стороны кроссплатформенной разработки, — считает Сергей Сорокин, тимлид Android-команды в Black Bricks и один из авторов курса „Android-разработчик“ в Яндекс Практикуме. — Популярность направления растёт, но нативная разработка ещё долго будет востребована. Более того, развитие кроссплатформенных фреймворков — это отличная новость, в первую очередь, для Android-разработчиков, потому что самые распространённые фреймворки проще всего освоить создателям мобильных приложений для операционной системы от Google. Например, Flutter, который Google активно продвигает и поддерживает: он доступен в привычной для Android-среде разработки, а используемый в нём язык Dart близок по синтаксису к Java. Не говоря уже о набирающем обороты Kotlin Multiplatform, в основе которого лежит язык программирования, на котором пишут все современные Android-приложения».

Стоит ли учиться мобильной разработке в 2023 году

Россия входит в 30 стран мира с самым дешевым мобильным интернетом, говорит исследование Cable.co.uk в 2022 году. И почти 70% её населения пользуется телефонами для выхода в интернет. Это огромное поле для коммерции и развития мобильных проектов.

Но сфера мобильной разработки растёт не только за счёт количества устройств. Постоянно появляются технологии, которые меняют возможности гаджетов: сверхскоростные сети 5G, виртуальная и дополненная реальность, интернет вещей, голосовое и жестовое управление и так далее. Для того чтобы встроить новые технологии в повседневную жизнь, нужны мобильные разработчики. Даже в условиях современного российского рынка мобильная разработка не теряет популярности: зарплаты продолжают расти, а работодатели — жаловаться на дефицит квалифицированных кадров.

Конечно, найти работу начинающему разработчику в любой сфере непросто, но тут у iOS и Android есть свои преимущества. Чтобы освоить мобильную разработку, необходимо изучить сразу весь набор инструментов для запуска приложения. С этим багажом легче попробовать себя в деле и реализовать пет-проекты для портфолио.

После трудоустройства практически в любой компании начинающие программисты встретятся с уже знакомыми решениями и фреймворками — они готовы к рабочим задачам. В отличие от тех, кто изучает языки широкого применения, или начинающих бэкенд-разработчиков, которым предстоит долгая адаптация.

Мобильная разработка учит быть гибким, постоянно обновлять свои знания, общаться в команде и думать о продукте с позиции пользователей. Кроме того, перед глазами всегда есть результат работы: приложение можно показать друзьям и пользоваться самому. И хотя на освоение языка и изучение платформ приходится потратить немало времени, в результате у мобильного разработчика есть все инструменты для работы с заказчиком или создания собственного проекта, который можно выпустить на рынок. Главное — найти интересную для себя сферу и приложить достаточно усилий к учёбе.

Как научиться мобильной разработке

Самые доступные бесплатные материалы по мобильной разработке — это официальные инструкции к инструментам. На сайте Android выложено много материалов для начинающих, для Swift также существует исчерпывающая документация. Но для совсем новичков в программировании эти инструкции вряд ли подойдут, и начинать обучение с нуля лучше на курсах. Многие из них не ограничиваются обучением языку и инструментам вокруг него, а полноценно готовят к работе в современной IT-компании после окончания.

В Яндекс Практикуме при разработке программ по iOS- и Android специально собирали требования работодателей к мобильным джуниор-разработчикам, чтобы включить в курсы всё необходимое. Поэтому кроме базовых понятий — архитектурных паттернов, инструментов создания UI, управления зависимостями и так далее, — туда вошли:

  • работа с базами данных,
  • написание unit-тестов,
  • многопоточность,
  • работа с API,
  • пуш-уведомления,
  • бизнес-логика,
  • публикация приложения в магазине и так далее.

Если вы не уверены, подходит ли вам мобильная разработка, или не знаете, какое направление выбрать, приходите на бесплатную вводную часть курсов Яндекс Практикума. За пару недель вы узнаете об основах iOS и Android и успеете написать собственное небольшое приложение. Попробовать можно хоть оба направления сразу: вводный курс поможет понять, насколько вам подходит формат учёбы и сфера деятельности в целом.

1111
2 комментария

Забыли добавить, что количество вакансий упало на 20-30% за 22/23 год

Очередной развод инфоцыган. Вкатыватели ни кому не нужны. Серьёзные спецы технари зарабатывают, а гуманитарии после курсов..... ну вы поняли.