Рассказываем, какие особенности есть у разных платформ, почему большое количество девайсов на Android — это проблема для разработчиков, и как потрениться кодить на Swift, если у вас нет компьютера на macOS. Разбираемся вместе с Android-разработчицей в такси Maxim Ариной Мурашевой.
Чем занимаются мобильные разработчики?
Мобильный разработчик отвечает за все этапы создания приложения: разрабатывает его архитектуру и может сделать интерфейс, тестирует его, выкладывает в AppStore или Google Play, устраняет уязвимости, выпускает обновления. Строгого разделения на frontend и backend, как в вебе, в мобильной разработке нет. Разработчик должен уметь работать как с интерфейсом, так и с внутренней логикой приложения.
Вакансии в мобильной разработке делятся на джуниоров, мидлов и сеньоров, а уровень разработчика зависит в первую очередь от навыков и компетенций.
Для создания мобильных приложений используются различные языки программирования и фреймворки, выбор которых зависит от типа приложения, операционной системы, бюджета и сроков разработки. Вот некоторые из наиболее популярных:
- Java – основной язык для разработки под Android, отличается мультифункциональностью и простым синтаксисом.
- Kotlin – современный язык от JetBrains, интегрирующий достижения других языков и снижающий стоимость разработки.
- Objective-C – официальный язык для iOS до появления Swift, подходит для быстрого создания несложных приложений.
- Swift – современный и безопасный язык от Apple, обеспечивающий быструю и удобную разработку приложений для iOS.
- React Native – кроссплатформенный фреймворк на основе JavaScript, позволяющий создавать приложения с высокой производительностью и быстрым временем разработки.
- Cordova – кроссплатформенный фреймворк, подходящий для создания мощных приложений с минимальным бюджетом.
- Flutter – фреймворк от Google для создания приложений для Android и iOS, позволяющий ускорить разработку и получить высокую производительность.
Выбор языка или фреймворка зависит от конкретных требований проекта и предпочтений разработчика.
Кто получает больше: Android или iOS-разработчик?
Медианная зарплата мобильного разработчика в 2024 году — 217 000 рублей.
По итогам первого полугодия 2024 года зарплаты IT-специалистов выросли на 8% по всей России. Медианная зарплата IT-специалиста составила 151 666 рублей. Для сравнения Росстат приводит цифры средних зарплат по России за первый квартал — 80 582 рубля, что почти вполовину меньше, чем оплата труда IT-специалистов.
Начинающие мобильные разработчики с хорошим портфолио могут рассчитывать на зарплату от 80 000 рублей. Разработчик на Android c опытом 1–2 года в России получает в среднем около 120 000 рублей в месяц, на iOS — около 130 тыс. рублей.
Android vs. iOS: плюсы, минусы и особенности
Количество устройств
Android лидирует среди операционных систем во всем мире. По данным statcounter на середину 2024 года, доля Android среди мобильных устройств в мире составляет 45,19%, iOS — 18,35%. По России картина примерно такая же: 74,14% гаджетов на Android, 25,41% — на iOS.
Разнообразие устройств
С одной стороны, разнообразие устройств для Android — это большой плюс, ведь работа для разработчика всегда найдется. Кроме того, чтобы начать работать с этой ОС, никакой дополнительной техники покупать не нужно — писать код можно на любой операционной системе: macOS, Linux или Windows. А вот для разработки на iOS обязательно понадобится техника от Apple.
Но большое количество девайсов на Android — это и недостаток, поскольку устройства не работают одинаково и зачастую приложение приходится адаптировать под параметры каждого гаджета, с разными размерами и разрешениями экранов.
С iOS проще: количество версий смартфона, размеров экрана и самой операционной системы ограниченно, поэтому сделать приложение, которое одинаково хорошо работает на всех устройствах, намного проще, чем на других платформах.
Обновления
Все изменения в операционной системе iOS прозрачны — компания ежегодно выпускает подробные гайдлайны по разработке приложений и публикует их на своем сайте.
У Android нюансы разработки могут меняться, и не все библиотеки и ответы на форумах будут актуальны.
Комьюнити
Android — это платформа с открытым кодом (доступ к исходному коду есть у всех желающих) и большим развитым сообществом: новичок может получить поддержку или решить проблему, задав свои вопросы на StackOverflow или GitHub.
iOS — более закрытая экосистема, и комьюнити преимущественно англоязычное, но встречаются и русскоязычные форумы.
Публикация приложения
В Google Play разовая плата за лицензию разработчика стоит $25. Публикация приложений происходит быстро и, как правило, без участия модераторов. В AppStore потребуется ежегодно продлевать доступ к лицензии разработчика за $99.
Но есть особенности: в Google Play приложение и аккаунт могут заблокировать без объяснения причин, а техподдержка отвечает редко, размыто и односложно. У AppStore публикация приложения может занять неделю — модераторы проверяют его вручную, — но техподдержка работает оперативнее.
Есть разница и в пользовательском поведении: считается, что пользователь Android не привык платить за приложение или дополнительные функции в нем, поэтому авторы приложений в основном зарабатывают на рекламе внутри него. С iOS же обратная ситуация: покупать приложение в AppStore — нормальная практика для пользователя. Например, как показывает исследование myTracker (система аналитики и атрибуции на базе технологий Mail.ru Group), доход от пользователей, совершающих внутриигровые покупки, составляет $48,82 на iOS и $29,69 на Android. Самая большая разница — в категории фитнес-приложений: пользователи iOS платят за подписку на них в 11 раз чаще, чем владельцы Android.
Android или iOS
Что нужно знать мобильным разработчикам?
Есть инструменты, с которыми должен хорошо работать любой разработчик, независимо от операционной системы. Он должен уметь работать с Git — распределенной системой управления версиями — и веб-сервисами для хостинга IT-проектов и совместной их разработки, например, GitHub. Важно уметь пользоваться популярными библиотеками и фреймворками и понимать, как передаются данные через протоколы REST и HTTP, а также работать с базами данных.
Также требуется уметь создавать интерфейс приложения на основе макета, знать, как создать сетевой запрос, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript), уметь создавать и использовать протоколы, подключать базы данных к приложению, знать архитектурные подходы и понимать способы хранения данных.
Что нужно знать Android-разработчику?
В требованиях к вакансии Android-разработчика обычно пишут, что он должен обязательно знать XML и Android SDK. Из языков чаще всего требуется Java, часто к нему прибавляется Kotlin. В любом случае, знание Java — это хороший старт для начинающего разработчика, поскольку на этом языке вы освоите основные концепции объектно-ориентированного программирования (ООП). Это методология программирования, основанная на представлении программы в виде совокупности объектов. Зная ООП, можно быстрее выучить другой язык.
Также начинающему разработчику понадобится изучить файловую структуру и принципы работы OS Android.
Что нужно знать iOS-разработчику?
Для разработки на iOS понадобится знание языков Objective-C и Swift. Сейчас в основном кодят на Swift, который считается более функциональным.
Для создания приложения понадобится компьютер с операционной системой macOS. Но даже если его нет, потренироваться кодить на Swift все равно можно. Первый вариант — скачать на официальном сайте языка GNU/Linux (операционные системы на основе ядра Linux и системных библиотек GNU) с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux). Второй — скачать на GitHub Windows с неофициальным пакетом Swift for Windows. Но для того чтобы собрать приложение, придется купить технику Apple.
С чего начать?
Первые шаги в мобильной разработке выглядят примерно так:
- Освоить один из языков программирования. В зависимости от ОС это Java/Kotlin или Objective-C/Swift.
- Изучить Android Developer Guides или Apple Development Guidelines и попробовать написать простое приложение.
- Сверстать пару прототипов в онлайн-сервисе для разработки интерфейсов и прототипов, например Figma, Adobe XD или Sketch.
- Опубликовать приложение в Google Play или AppStore.
- Собрать и разместить портфолио на GitHub.
Всему этом можно научиться на наших курсах: iOS-разработчик и Android-разработчик.
Сложно ли перейти с одной на другую платформу?
Это возможно, но многое все равно придется учить заново. Например, осваивать профильный язык программирования.
Разработка для Android
Плюсы:
- Широкая аудитория пользователей Android.
- Открытый исходный код позволяет разработчикам экспериментировать и создавать уникальные решения.
- Гибкость платформы позволяет адаптировать приложения под различные устройства и конфигурации.
- Большое количество инструментов и библиотек для разработки.
Минусы:
- Сложности с фрагментацией устройств и необходимость оптимизации под разные конфигурации.
- Более высокая стоимость разработки из-за необходимости тестирования на большом количестве устройств.
- Конкуренция на рынке приложений.
Разработка для iOS
Плюсы:
- Преданность пользователей устройствам Apple и готовность платить за приложения.
- Стабильность и удобство платформы.
- Строгие стандарты качества способствуют созданию надёжных и безопасных приложений.
- Меньшая фрагментация устройств по сравнению с Android.
Минусы:
- Ограниченный охват аудитории по сравнению с Android.
- Необходимость использования специализированных инструментов и технологий, что может увеличить стоимость разработки.
- Более высокие требования к качеству приложений.
Полезные ссылки
- Для новичков у Android есть курсы для разработчиков на официальном сайте и краудсорсинговый гид — подробное руководство по созданию приложений, их дизайну и тестированию.
- Блог разработчиков Android — тут выходят статьи с разбором обновлений и запуска новых функций.
- Гайд Human Interface Guidelines от Apple о принципах дизайна приложений.
- Apple XCode — среда для разработки для iOS.
- Android Studio — среда для разработки для Android.