Программирование • 02 августа 2024 • 5 мин чтения

Android или iOS: какой путь выбрать мобильному разработчику

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

Кто такие мобильные разработчики?

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

Где нужны мобильные разработчики:

Бизнес. Например, для разработки приложений маркетплейсов, фитнес-центров, такси.
Индустрия развлечений. Можно стать разработчиком игр или стриминговых сервисов музыки и фильмов.
Образование. Например, разрабатывать программы для изучения языков, занятий спортом.
Финансы. Банковские мобильные приложения практически заменили кошельки. Благодаря мобильным разработчикам, удобно оплачивать покупки, открывать банковские продукты и переводить деньги в интерфейсе смартфона.
Производство. Например, компания, которая поставляет холодильное оборудование для хранения медицинских препаратов, может разработать систему мониторинга температуры в холодильниках. Оператор в режиме реального времени сможет отслеживать на экране планшета, какое оборудование вышло из строя.
Медицина. Приложения для пациентов разрабатывают и коммерческие клиники, и государственные учреждения.

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

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

Михаил Вассер, руководитель мобильной разработки в AGIMA, наставник и автор на курсе «Android-разработчик»
На российском рынке в кросс-платформенной разработке чаще используют фреймворк Flutter. На мой взгляд, со временем рынок заказной разработки полностью перейдёт к Flutter-разработке. Такие приложения дешевле создавать и поддерживать. Но продуктовые компании останутся в нативной разработке, чтобы поддерживать приложения на должном уровне качества. Поэтому путь в мобильной разработке лучше начинать с нативных приложений: это позволит подробно изучить особенности одной или двух платформ. Позже при желании освоить кросс-платформенные технологии. С нативной базой это получится сделать быстрее.

Когда разрабатывают сайт или веб-приложение, веб-разработчик может заниматься и клиентской частью — той, которую видит пользователь, — и серверной, которая помогает сервису стабильно работать и не тормозить.

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

Попробуйте себя в мобильной разработке
Выберите курс по душе и начните бесплатную вводную часть.

Сравнение Android и iOS

Для пользователя 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 — путь пользователя из нескольких экранов.

В стартапе времени на долгое погружение нет: бизнесу важно быстрее запустить продукт. Бывает, что в команде один-два разработчика, поэтому придётся учиться на ходу, делать не идеально, но быстро.

Михаил Вассер
Если выбрал какое-то направление, это не значит, что придётся всю жизнь им зан