Android или iOS: какой путь выбрать мобильному разработчику
Программирование • 02 августа 2024 • 5 мин чтения
Android или iOS: какой путь выбрать мобильному разработчику
Успешную карьеру можно построить в обоих направлениях — у каждого есть преимущества. О них и расскажем. Возможно, именной этой информации не хватает для принятия решения.
Мобильный разработчик — это тот, кто пишет программы для мобильных устройств — например, смартфонов, планшетов, умных часов и фитнес-браслетов. Мобильные приложения нужны всем: от обычных пользователей до бизнеса и науки. Поэтому спрос на специалистов, которые их разрабатывают, в ближайшие 5–10 лет будет только расти.
Где нужны мобильные разработчики:
● Бизнес. Например, для разработки приложений маркетплейсов, фитнес-центров, такси.
● Индустрия развлечений. Можно стать разработчиком игр или стриминговых сервисов музыки и фильмов.
● Образование. Например, разрабатывать программы для изучения языков, занятий спортом.
● Финансы. Банковские мобильные приложения практически заменили кошельки. Благодаря мобильным разработчикам, удобно оплачивать покупки, открывать банковские продукты и переводить деньги в интерфейсе смартфона.
● Производство. Например, компания, которая поставляет холодильное оборудование для хранения медицинских препаратов, может разработать систему мониторинга температуры в холодильниках. Оператор в режиме реального времени сможет отслеживать на экране планшета, какое оборудование вышло из строя.
● Медицина. Приложения для пациентов разрабатывают и коммерческие клиники, и государственные учреждения.
В мобильной разработке два вида разработчиков: нативные и кросс-платформенные. Нативные пишут программы под конкретную операционную систему (ОС). Чаще всего — под iOS или Android. Обычно для таких приложений дизайнеры делают разные макеты, поэтому визуально они отличаются. Например, может быть разное расположение кнопок, цвета, меню. Какие-то функции могут быть доступны только для конкретной платформы.
Кросс-платформенные разработчики используют специальные фреймворки, которые позволяют разрабатывать одно приложение сразу для двух операционных систем. Это удобно, когда нужно быстро создать базовую версию продукта и протестировать её, разработать простое приложение или не хватает бюджета на две команды разработки. Но если это сложное приложение, например для банка, в кросс-платформенном варианте оно может работать не так эффективно, как нужно пользователю, или какие-то его элементы могут отображаться с ошибками. Всё потому, что фреймворк не всегда учитывает особенности работы конкретной ОС. Поэтому для высоконагруженных приложений со множеством разделов и нестандартными функциями выделяют бюджет на нативную разработку.
Когда разрабатывают сайт или веб-приложение, веб-разработчик может заниматься и клиентской частью — той, которую видит пользователь, — и серверной, которая помогает сервису стабильно работать и не тормозить.
В мобильной разработке серверной частью приложения почти всегда занимается отдельный специалист — бэкенд-разработчик. А мобильный разработчик отвечает за функциональность интерфейса — правильное расположение кнопок и текста, анимацию, проигрывание видео, переходы по разделам приложения, обработку запросов от интерфейса к базе данных. Этому учат на курсах iOS- и Android-разработчиков. Студенты начинают с основ программирования, знакомства с языками мобильной вёрстки и инструментов для разработки приложений. К концу курса знаний уже достаточно, чтобы разработать полноценный проект — игру под iOS или агрегатор вакансий под Android.
Для пользователя iOS — это операционная система, на которой работают мобильные устройства Apple: iPhone, iPad, Apple Watch. Разберём технические особенности платформы.
● Языки. В приложениях для iOS используют два языка программирования. До 2014 года — Objective-C, а после — более удобный и современный Swift, который Apple разработала специально для своих приложений. Он совместим с Objective-C, поэтому в проекте можно использовать оба языка: на одном поддерживать старые функции, а на другом писать новые.
● Среда разработки. Для создания приложений на iOS есть специальная среда разработки — Xcode. В ней удобно писать код и сразу проверять, как он будет работать в готовом продукте.
Минус среды Xcode — она доступна только на macOS. Источник: Apple
● Ограниченный выбор техники для тестирования. Ключевая особенность iOS в том, что эта платформа работает только в устройствах Apple. С одной стороны, это накладно для разработчика: чтобы разработать и протестировать приложение, нужно купить iPhone и Macbook. Как альтернативу можно использовать программы, которые имитируют интерфейсы техники Apple, но разработчики жалуются, что они неудобные и работают нестабильно. С другой стороны, не нужно тестировать приложение на множестве разных устройств, как это пришлось бы делать в Android-разработке.
● Долгая публикация в магазине приложений. Чтобы опубликовать приложение в App Store, нужно пройти строгий процесс проверки. Это требует времени и усилий, но в магазине меньше приложений низкого качества.
Теперь рассмотрим особенности Android.
● Языки. В Android-разработке тоже используют два языка — Java и Kotlin. Код на Kotlin, как и на Swift для iOS, более лаконичный и читаемый, поэтому новые приложение пишут именно на Kotlin. Но чтобы поддерживать старые проекты, важно знать Java.
● На Android работает много устройств с разными экранами, процессорами и версиями ОС. Это усложняет разработку и тестирование: нужно учитывать больше вариантов, чем для iOS.
● Возможности для экспериментов. Библиотеки для Android позволяют создавать более гибкие интерфейсы. Для разработчика это возможность больше экспериментировать.
● Публикация в Google Play проще и быстрее, чем в App Store. Требования к качеству приложений менее строгие, но это значит, что пользователям чаще могут попадаться приложения с багами.
Для Android тоже есть среда разработки — Android Studio. Она доступна на Windows, macOS и Linux. Источник: Android для разработчиков
Правильного ответа на этот вопрос не будет. Но при выборе платформы можно опираться на опыт или интересы. Например, с опытом программирования на Java проще войти в Android-разработку, потому что Kotlin создавали на основе этого языка. Знание Objective-С облегчит старт в iOS-разработке.
Кому-то нравится техника Apple, и это тоже может быть причиной стать iOS-разработчиком. А кому-то важнее разработать приложение с большим количеством пользователей — 70% гаджетов в мире работают на Android.
Задачи на первом проекте для Android и iOS-разработчика будут примерно одинаковые, а их сложность будет расти по мере погружения разработчика в проект. Например, в зрелой компании задачи могут быть такие:
● Исправлять мелкие баги, до которых не добрались другие разработчики. С одной стороны, в таких задачах не страшно ошибаться, потому что они мало влияют на работу приложения. С другой — это возможность изучить продукт: модули, классы и объекты, архитектуру, то, как приложение использует данные.
● Задачи, которые затрагивают разные части приложения. Например, добавить кнопку, изменить текст.
● Когда джун разобрался в работе приложения, ему могут поручить поменять логику работы экрана, сделать экран с нуля, разработать flow — путь пользователя из нескольких экранов.
В стартапе времени на долгое погружение нет: бизнесу важно быстрее запустить продукт. Бывает, что в команде один-два разработчика, поэтому придётся учиться на ходу, делать не идеально, но быстро.
Стать разработчиком теперь сложнее, чем 7–10 лет назад. Специалистов на рынке больше, а значит, и конкуренция выше. К тому же технологии развиваются и разработчикам нужно просто больше знать. Но благодаря онлайн-школам учиться стало проще: вся информация структурирована, дают только актуальные знания на примерах реальных проектов.
Разберём список базовых хард-скилов для iOS- и Android-разработки:
Софт-скилы проверяют на первом этапе — интервью с HR — и на собеседовании с техническим специалистом. Все технические интервью для мобильных разработчиков можно разделить на два типа — теория и лайвкодинг.
Какие будут дополнительные вопросы, зависит от компании. Например, в команде, которая разрабатывает приложение для онлайн-кинотеатра, будут спрашивать о работе плеера. А для проекта по созданию соцсети или мессенджера пригодятся знания о многопоточности, потому что лента с постами должна обновляться быстро, а сообщения — приходить без задержек. Часть вопросов может затронуть прошлый опыт: в каких проектах разработчик участвовал, из какой сферы пришёл, как была устроена работа в команде.
Разберём данные для двух уровней мобильных разработчиков — джунов и мидлов. На первую позицию можно рассчитывать после завершения учёбы. Чтобы перейти на следующий уровень, нужно нарабатывать опыт в течение 1,5–2 лет.
По данным сервиса Getmatch, медианная зарплата junior-разработчиков под Android — 80 000 рублей. Источник: Getmatch
Медианная зарплата iOS-разработчиков больше — около 100 000 рублей, но зарплату от 50 до 100 тыс. предлагают чаще. Источник: Getmatch
А вот предложение для разработчиков-мидлов, специализирующихся на Android или iOS, одинаковое — в районе 200 000 рублей. Источник: Getmatch
Аналогичную цифру показывает исследование «Хабр Карьеры»: по данным их анкет, мидл-разработчики могут рассчитывать на сумму от 147 000 до 273 000 рублей. Источник: «Хабр Карьера»
По джунам данные в том же диапазоне, что и у Getmatch, но чуть оптимистичнее. Источник: «Хабр Карьера»
Теперь посмотрим, где больше конкуренция. По запросу «Android разработчик» с опытом от 1 года на hh.ru нашлось 152 вакансии в России и ближнем зарубежье. Аналогичный запрос для iOS-разработчика принёс 127 вакансий. В обе выборки попали вакансии не только с нативной, но и с кросс-платформенной разработкой.
Совет эксперта
Читать также: