Apple developer что это такое

Обновлено: 04.07.2024

Для размещения приложения в App Store и Google Play понадобится аккаунт разработчика. Предлагаем пошаговый гайд, как пройти регистрацию быстро и безошибочно.

Регистрируемся в App Store

Забегая вперед, сразу скажем, что аккаунт обойдется 99$ в год. Эту сумму потребуется оплатить при регистрации.

Этап 1

Создаем Apple ID. Для этого корректно заполняем все поля (последующие исправления не допускаются!) и подтверждаем e-mail.

Этап 2

Для настройки учетной записи нужно привязать ее к конкретному iPhone/MAC/iPad и телефону.

— Выбираем устройство. Выходим из текущей учетной записи и входим под новой – той, которую вы создали в первом шаге.

Важно! Вводя пароль, обязательно сохраните все копии данных!

— Включаем двухфакторную аутентификацию. Как это сделать?

На iOS 10.3 и выше:

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

На «младших» версиях:

Заходим в Настройки → выбираем iCloud → указываем Apple ID и после перехода в пароли действуем так же, как описано выше.

— Привязываем профиль к номеру телефона. На него будет приходить SMS с проверочным кодом для безопасного входа. Поэтому лучше завести отдельную «симку», если вы планируете делегировать работу с площадками подрядчикам. Также можно выбрать доверенный номер – на него также можно получать SMS с цифровыми комбинациями. Если не хотите каждый раз пересылать их, когда разработчики выкладывают сборку или маркетологи корректируют описание продукта, two-factor authentication можно отключить – только после проверки и одобрения аккаунта .

Этап 3

Продолжаем регистрацию как физ- или юрлицо.

Вариант 1. Физическое лицо

— Заполняем форму на английском и оплачиваем 99 долларов.

Важно! Имя в профиле и держателя карты должны быть идентичными. Также на сайте лучше отключить CV.

— Через 1-3 дня вы получите активационное письмо, которое позволит завершить регистрацию.

Вариант 2. Юридическое лицо

В этом случае понадобится международный идентификатор юрлиц, или D.U.N.S.- номер, который подтвердит, что ваша организация – не фикция.

Получают его здесь , оплатив 14 280 руб. Номер вашей компании будет включен в реестр в период до пяти рабочих дней, но для одобрения аккаунта Apple Store нужно еще две недели.

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

Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».

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

Мы разберем процесс управления вашим приложением в Apple Developer Center от его создания до публикации в магазине App Store. Мы будем говорить только о базовых вещах, таких, как разработка, тестирование и публикация, а также обсудим APNs (Push Notifications).

Отмечу тот факт, что далее я буду описывать принцип работы девцентра по состоянию на 31 марта 2016 года, поэтому если вы читаете эту статью позднее — все уже могло измениться.

Собственно, для работы нам нужно следующее:

В девцентре для полноценной работы с вашими приложениями нам понадобятся только два пункта:

  • Certificates, Identifiers & Profiles. Раздел обеспечивает управление всей системой сертификации ваших приложений. Работу именно с этим разделом мы и будем разбирать в данной статье.
  • iTunes Connect. Дает доступ к внутреннему и внешнему тестированию через TestFlight, а также к управлению публикацией ваших приложений в App Store.

Давайте подробно разберем понятия, лежащие в основе функционирования девцентра Apple.

Сертификаты (Certificates)

Этот раздел дает доступ к управлению сертификатами, которыми обладает ваша учетная запись Apple ID. Каждый из этапов, которые вы будете проходить, будь то разработка, тестирование или публикация, включая все значимые составляющие экосистемы Apple вроде Push Notifications, требует обязательного наличия актуального (действующего, Active) сертификата. Говоря проще, ваше приложение не сможет даже чихнуть, не имея на то разрешения из Apple Developer Center. Чуть подробнее о подразделах:

  • Pending. Запрошенные вами сертификаты, находящиеся в процессе обработки от Apple. Для дев (Development) и прод (Production) сертификатов конкретно в моем случае этот подраздел чаще всего пустует.
  • Development. Дев-сертификаты, обеспечивающие возможность отладки вашего приложения на конкретных девайсах (одном либо нескольких) через Xcode, а также создание дев-сборок «в отладочном режиме». Более подробно поговорим о них чуть ниже.
  • Production. Прод-сертификаты, обеспечивающие работоспособность приложения при тестировании в TestFlight и при публикации в магазине App Store.

Сертификаты типа «Development»

В первую очередь, нужно знать, что девелоперский сертификат всегда привязывается к одной конкретной машине. Поэтому для отладки на вашем Mac вам понадобится доступ к этому сертификату. Тут есть варианты. Например, если, вы устроились на работу iOS-программистом, и в ваши задачи входит отладка на устройствах (как правило, так и есть), то есть два пути решения (какой из них выбирать — зависит от вас и условий работы в вашей компании):

  • Создать отдельный дев-сертификат конкретно для вашего Mac, скачать и установить его. Плюс понадобится сгенерировать и установить на свой Mac девелоперский профиль на основе этого сертификата, но об этом позже.
  • Либо экспортировать с машины, на которую заведен сертификат, файл *.p12/*.pfx (это можно сделать в связке ключей Apple). Такой файл защищается паролем при экспорте, и, зная этот пароль, информацию о сертификате можно будет импортировать на любом другом Mac. В этом случае отпадает необходимость создавать для каждого Mac отдельные Development-сертификаты и отдельные Development-профили. Небольшая оговорка: профиль хоть и должен быть сгенерирован для той машины, на которую выпущен экспортируемый сертификат, но в этот профиль понадобится добавить UDID вашего устройства прежде, чем выдавать профиль вам для установки, иначе ничего работать не будет.

Наличие дев-сертификата означает, что, скачав его и установив двойным кликом в Связку Ключей (Apple Keychain), вы сможете запускать ваше приложение напрямую через Xcode в режиме отладки на устройстве, подключив это устройство проводом к вашему Mac. Перечень разрешенных конкретных устройств Apple нужно будет обязательно указать при генерации девелоперского профиля, но об этом позже. Также, вы сможете собрать и экспортировать сборку с дев-профилем, но стоит учесть, что в этом случае ваше приложение не будет иметь доступа к продакшн-возможностям (APNs будет только в режиме sandbox, например).

Сертификаты типа «Production»

Для начала на всякий случай поясню, что сборкой iOS-приложения называют *.ipa-файл, архив, выпускаемый с соблюдением правил сертификации Apple через команду Project — Archive в Xcode.

Теперь о сертификации. Прод-сертификаты обеспечивают функционирование различных подсистем приложения в «боевых» условиях, то есть в магазине App Store, а также на устройствах, где выполняется внутреннее и внешнее тестирование приложения через TestFlight. Здесь, по аналогии с Development-сертификацией, есть тип App Store & Ad Hoc Production, а также тип APNs Production, использующийся веб-сервером для рассылки push-уведомлений. Если вы планируете выпустить приложение, поддерживающее работу с пушами, то вам понадобятся оба сертификата, как App Store & Ad Hoc (на основе которого вы сделаете сборку и отправите приложение в iTunes Connect), так и APNs Production (его вы отдадите серверу, а тот воспользуется им для получения прав на рассылку пушей). В довесок к уже упомянутым подсистемам есть еще несколько других, обеспечивающих доступ к Wallet, Apple Watch и так далее, но их обзор выходит за рамки данной статьи.

Очень часто возникает вопрос о том, в чем же разница между App Store и тем самым Ad Hoc. Ранее они были представлены разными сертификатами, с некоторого времени Apple объединила их в единое целое, за что им большое спасибо. Чуть подробнее об этих разновидностях:

  • Выпуск сборок типа App Store. Обеспечивает возможность тестировать приложение в TestFlight, как в режиме внутреннего, так и в режиме внешнего тестирования. Также дает возможность опубликовать приложение в App Store.
  • Выпуск сборок типа Ad Hoc. Термин «Ad Hoc» можно перевести как «специальный», «для конкретной цели». Такой тип сертификации обеспечивает возможность запускать ваше приложение (включая все нужные подсистемы типа APNs) в боевых условиях, но только на конкретных девайсах, и без участия Xcode в процессе запуска. Другими словами, Ad Hoc необходим, если вы захотите поставить ваше приложение на стороннее устройство, не имея к нему прямого доступа (то есть не подсоединяя его проводом к вашему Mac, так как в этом случае вам бы хватило Development-сертификата), но при этом и не выкладывая приложение в iTunes Connect. Такой сертификат используется при создании специального Ad Hoc-профиля, о котором пойдет речь чуть позже.

Intermediate Certificates

Некоторое время назад Apple внесла изменения в логику работы девцентра и своей системы сертификации, после чего на большинстве компьютеров пропала возможность делать сборки приложений, несмотря на наличие активных дев- и прод-сертификатов и актуальных профилей. Причина этого была в том, что Apple добавила дополнительное требование, чтобы на вашем Mac в связке ключей был установлен специальный сертификат под названием «Worldwide Developer Relations Certificate Authority». Он устанавливается автоматически с новыми версиями Xcode, но те, у кого Xcode уже был установлен ранее, просто должны были установить этот сертификат вручную, скачав его по прямой ссылке из секции Intermediate Certificates в девцентре Apple, после чего проблемы со сборками исчезали. Больше никакой смысловой нагрузки этот сертификат не несет.

Идентификаторы (Identifiers)

Данный раздел обеспечивает управление идентификаторами. Для вашего приложения в минимальном исполнении понадобится App ID, управление которыми доступно в одноименном подразделе.

В буквальном переводе «App ID» означает «идентификатор приложения», что полностью отражает его суть. Любое ваше приложение, которое вы хотите отлаживать на устройстве Apple, тестировать через TestFlight и/или публиковать в магазин App Store, должно обладать собственным уникальным именем, по которому его можно однозначно идентифицировать среди тысяч других приложений. При добавлении нового App ID вам будет предложено ввести несколько элементов:

  • App ID Description. Имя вашего приложения. К примеру, если ваше приложение называется Mail Printer, то прямо так его и записываем в это текстовое поле.
  • App ID Prefix. Префикс вашего приложения, он выдается вам автоматически и будет общим для конкретной команды Apple Team, где подключена и активна Apple Developer Program.
  • App ID Suffix. Здесь нам понадобится выбрать Explicit App ID, чтобы указать бандл (bundle) приложения. Это идентификатор, обычно имеющий вид com.mycompany.myappname, где mycompany — имя вашей компании или вашего домена. Например, com.homecompany.MailPrinter. Обращаю ваше внимание, что точно такой же бандл должен быть выставлен в настройках таргета (Target) вашего приложения в Xcode (секция настроек General, поле Bundle Identifier).
  • App Services. Здесь вам нужно отметить те сервисы, которые вы планируете использовать в вашем приложении. По умолчанию там отмечены только Game Center и In-App Purchase, их использование обязательно, удалить их нельзя. Остальные сервисы подключайте по мере необходимости.

Устройства (Devices)

Профили (Provisioning Profiles)

Дословно название этого раздела переводится как «Профили обеспечения». Чуть более развернуто я бы описал понятие «профиль» как «Специальный файл, обеспечивающий доступ к некоторой функциональности в конкретной сборке вашего приложения». В данном разделе девцентра вы можете управлять вашими профилями, обеспечивая себе возможность выпускать сборки приложения для различных целей, то есть «профилировать» его. По сути, профиль является результатом объединения двух (иногда трех) компонентов:

Профили типа «Development»

Это профиль для разработки, то есть его основное назначение — отладка вашего приложения на конкретных устройствах через Xcode с прямым подключением устройства проводом к вашему Mac. Дев-профили представлены двумя видами:

  • iOS App Development. Требует указания перечня разрешенных устройств из раздела Devices.
    Используется для отладки iOS-приложений.
  • tvOS App Development. Аналогично, только используется для tvOS-приложений.

Профили типа «Distribution»

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

  • App Store. Используется для тестирования (как внутреннего, так и внешнего) в TestFlight, а также для выпуска приложения в App Store.
  • tvOS App Store. Аналогично предыдущему, только для tvOS.
  • Ad Hoc. Требует указания перечня разрешенных устройств из раздела Devices.
    Используется, если вы хотите выпустить сборку, которую можно будет поставить в режиме «Production», но только на некоторых устройствах. Реальная ситуация, когда это может понадобится, например, следующая. Вы разрабатываете приложение, а в процессе работы заказчик попросил у вас «дать ему пощупать приложение» на своем Apple-устройстве. В iTunes Connect для активации внешнего тестирования вы еще выходить не готовы, но просьбу заказчика нужно выполнять — вот тут как раз и пригодится Ad Hoc-профиль, сгенерированный на базе прод-сертификата App Store & Ad Hoc Production Certificate. Важный момент: в моем случае часто возникали проблемы при экспорте сборок подобным способом, если в Xcode не был также установлен и Development-сертификат. Ошибки были разного рода, от невозможности подписать сборку до абсурдного «App ID is not available», хотя это фактически не так (замена на другой бандл ничего не давала). Поэтому, по моему предположению, для удачного экспорта Ad Hoc-сборок необходимо, чтобы, помимо Ad Hoc-профиля, был также установлен и дев-сертификат с соответствующим профилем.
  • tvOS Ad Hoc. Аналогично предыдущему, только для tvOS.

Этот сервис предоставляет вам возможность управлять внутренним и внешним тестированием в TestFlight, а также выкладывать приложение в App Store. Рассмотрение этого процесса выходит за рамки данной статьи, упомяну лишь тот факт, что для корректной работы этому сервису необходимы сборки, созданные на базе профиля типа Distribution — App Store (для iOS либо tvOS). Другие типы профилей здесь не поддерживаются.

По сути, при получении доступа к девцентру с активной Apple Developer Program ваш алгоритм действий должен сводиться к следующему:

Со стороны iOS разработка может казаться закрытым клубом. Для работы обязательно нужен Mac, Apple пристально контролирует экосистему. Изнутри тоже иногда слышны противоречия — кто-то говорит, что язык Objective-C старый и неповоротливый, а кто-то, что новый язык Swift слишком сырой.

Тем не менее, разработчики идут в эту сферу и попав туда, остаются довольны.

В этот раз о своем опыте нам рассказали Марат Нургалиев и Борис Павлов — как они учились профессии IOS-разработчика, как проходили первые собеседования, почему получали отказы. А экспертом выступил Андрей Антропов — декан факультета iOS-разработки в GeekBrains.

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

Тем не менее, ему не отказали, а дали практическое задание — за две недели реализовать отображение списка новостей с помощью API. И под iOS, и под Android. «Если на Android у меня был какой-то опыт, то для создания iOS версии не было даже инструмента. Среда разработки ios приложений есть только на Mac. Но через две недели я вернулся, показал, что мог на Android. С iOS пришлось выкручиваться на ходу. В итоге меня взяли. Тогда я жил в Астрахани. Меня устраивала любая работа в ИТ с зарплатой выше двадцати».

Кто такие — iOS-разработчики

IOS-developers - это мобильные разработчики делают приложения для любых портативных устройств. Смартфоны, планшеты, умные часы и все остальные платформы, которые поддерживают Android или iOS. Фундаментальные основы мобильной разработки не отличается от обычной, но из-за специфических инструментов ее выделили в отдельное направление. Здесь используются свои инструменты, языки программирования и фреймворки.

«Для работы с iOS нужен макбук, потому что только на нем есть необходимая среда разработки Xcode. Она бесплатна и распространяется через магазин приложений AppStore. Для установки надо иметь своей Apple ID и больше ничего. В Xcode можно разработать приложения для чего угодно — телефона, планшета, часов. Встроенный симулятор и редактор есть для всего», — говорит Андрей Антропов, декан факультета iOS разработки в GeekBrains.

«Но среду разработки можно поставить и на Windows, если использовать „Хакинтош”. Это рабочий, но окольный вариант — никто из серьезных разработчиков подобным не занимается. Начинающие покупают старенький Макбук. А опытные обычно могут себе позволить последнюю модель».

Языки — Swift или Objective-C

Почти вся iOS-разработка ведется при помощи языка программирования Swift. Он появился пять лет назад и сейчас постепенно вытесняет старый язык Objective-C, который Apple использовала во всех своих приложениях больше 30 лет

«На Objective-C накоплена огромная база кода, поэтому до сих пор требуются разработчики на оба языка, в зависимости от компании, от ее задач и приложений. Приложения, написанные много лет назад, основаны на Objective-C. А все новые проекты по умолчанию разрабатываются на Swift. Сейчас Apple очень много делает для того, чтобы вести одновременную разработку под телефон, планшет, часы и Макбук было максимально удобно. Один и тот же код может быть скомпилирован и запущен везде. Раньше этого не было. Под iOS разрабатывали на Swift, под MacOS использовали Objective-C».

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

«Objective-C достаточно старый язык — ровесник языка С++. Во времена, когда его разрабатывали, требования к языкам были совсем другими. Когда появился Swift, в нем было много багов, функциональность была ограниченной, синтаксис был шероховатым. А на Objective-C у людей была набита рука. Он много лет совершенствовался, все ошибки там были исправлены. Но теперь, я думаю, Swift не уступает Objective-C. Хотя даже Apple в своих проектах до сих пор использует оба. Языки во многом взаимозаменяемые и взаимно дополняемые. Структуры и объекты одного языка можно превратить в объекты и структуры другого языка. Хорошо бы знать оба варианта, но для новичков Objective-C часто кажется пугающим и непонятным».

Обучение IOS-разработке

«На моей первой работе меня обучал начальник, помогал в реализации и настройке проекта», — рассказывает Марат, — «Но работать по Android и по iOS одновременно трудно. Нужно время для перестройки, переключения с проекта на проект, с языка на язык. В итоге я решил, что нужно выбрать одно направление и изучать его. Меня подкупили интерфейс Xcode и простой синтаксис Swift».

Марат поступил на факультет iOS-разработки в GeekBrains. Первое время было очень легко, потому что многие вещи он знал по опыту работы. Годовой курс разбит на четыре четверти. По словам Андрея, в первой дается только самая база: «Основа языка Swift, знание базовых фреймворков, сетевое взаимодействие, хранение данных, жизненный цикл приложения, контроллера, базовые архитектуры, основные библиотеки, которые все используют, многопоточность и параллелизм в приложениях».

Во второй четверти добавляется Objective-C. Проводится курс по архитектуре, базовым паттернам программирования. В третьей четверти учат правильному стилю написания кода. Рассказывается, что такое фабрика, как правильно писать тесты, формировать проекты, что такое Git-Flow, Continuous Integration через Fast Lane. Четвертая и завершающая четверть посвящена командной работе, практическим заданиям и стажировкам.

«Первая четверть прошла легко», — говорит Марат, — «но потом началось изучение программирования на Objective-C, изучение паттернов проектирования, принципов Solid, Git-Flow, архитектуры проекта, Unit и UI тестирования приложений, настройка кастомной анимации — и тогда мне стало интересно учиться».

«У меня в GeekBrains все началось не супер гладко», — рассказывает Борис Павлов, и его путь к iOS-разработке в целом был не самым прямым. Парня воспитывала бабушка. Она была архитектором, математиком и дизайнером и привила Борису любовь к проектированию, научила чертить от руки и рисовать. Его дядя был сисадмином и заинтересовал племянника компьютерами.

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

«Я решил пройти бесплатный вводный курс в GeekBrains. Если честно, он был очень скучным, вялым и непонятным», — вспоминает Борис, — «преподаватель рассказывал об особенностях языка, но метался из одной темы в другую не раскрывая сути. Когда курс закончился, я так ничего и не понял».

Поэтому после вводного курса Борис поступил не на годовое обучение, а на короткий трехмесячный курс, где преподают самые основы профессии. «Там мне попались очень хорошие преподаватели, и объясняли все достаточно понятно».

«Нас часто критикуют, якобы у нас не совсем актуальные методички, есть неточности. Но курсы постоянно обновляются, а преподаватели всегда рассказывают о новшествах. Из групп, которые я веду, очень многие трудоустраиваются уже после первой четверти. Конечно, обычно это люди с опытом программирования», — говорит Андрей, — «С другой стороны, все знания невозможно донести за один курс. Сетевое клиентское взаимодействие в жизни не уместишь в десять лекций по два часа. И если ты ходишь только на курсы IOS-разработки и больше ничего дополнительно не делаешь, то знаний не хватит. Если же весь год заниматься каждый день, то при таком темпе только ленивый не устроится. Потому что спрос в профессии очень большой».

Вакансии сюда

Вы можете посмотреть самые свежие вакансии для iOS-разработчиков и подписаться на новые.

Работа

Но ни у Марата, ни у Бориса трудоустройство не прошло так просто.

«Некоторые крупные фирмы давно разработали iOS приложения на Objective-C, и продолжают поддерживать старую кодовую базу. К сожалению, у меня нет весомого аргумента, чтобы заставить их использовать исключительно Swift. Особенно тех, кто пользуется правилом „не трогай то, что работает“», — говорит Марат, — «Направлению Objective-C в Geekbrains уделяется мало внимания. Оно несет скорее ознакомительный характер. Но каждая компания, в которую я собеседовался, спрашивала про Objective-C. А так как учеба ориентирована на Swift, как и моя прошлая работа, то на собеседованиях я получал отказы».

«После учебы я самостоятельно знал только самые поверхностные основы, с помощью которых мог создать самое простое приложение», — рассказывает Борис, — «Для работы, конечно же, было недостаточно, но я радовался и этому. С поисками работы в Иркутске было сложно. Если точнее — совсем никак. Я решил искать в других городах. По количеству вакансий самыми актуальными оказались Краснодар, Москва и Петербург. Я решил поехать в СПБ — ближе к Европе.

Но все оказалось не так радужно. Даже от джуниора IOS-разработки простят того, чего он знать не может. Я пока не нашел работу. Работаю за „спасибо“, набираюсь опыта. Понимаю, что это не то, чего я хотел, но мне интересно, и это движет мной. Я хочу получать знания».

Андрей считает, что новичкам стоит искать не работу, а стажировки. Если знаний совсем мало — то это нормально, когда стажировка не оплачивается. Идти на джуниорские вакансии Андрей советует в большие компании, где уже налажен процесс работы.

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

Зарплаты

Зарплата iOS разработчика, как и любая другая зависит от вопроса «Москва или Россия». Но из-за специфики индустрии — много удаленной работы, возможности для релокации и работа не на региональном рынке — цифры все чаще приближаются друг к другу.

«Джуниор совсем низко уровня часто работает бесплатно или за символические деньги — 20–30 тысяч рублей. Если же джуниор целенаправленно взят на свою позицию, то получит от 50 до 80 тысяч. Мидлы получают от 100 до 150, и иногда даже до 200. Синьоры в IOS-разработке меньше 200 не получают. Я думаю, их зарплата в районе 200–300. А у тимлидов, соответственно, за 300».


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

🤖 Читайте до конца: рассказываем, правда ли, что у Apple очень строгие гайды.

Что делает iOS-разработчик?

iOS-разработчик создает приложения для устройств Apple. Это не только iPhone, но и iPad, Apple Watch и другие гаджеты, входящие в экосистему. Он не только пишет код и работает над интерфейсом, но и занимается поддержкой приложения, адаптацией его под разные модели устройств, тестированием и исправлением багов.

Где он нужен?

iOS-разработчики востребованы везде — от игр и развлекательных приложений до банков и e-commerce. А пандемия и повсеместный переход компаний в онлайн показали, что в ближайшие годы спрос на мобильную разработку будет только расти. За первые три квартала 2020 года мобильный трафик вырос почти на 50% по сравнению с тем же периодом в 2019 году. Также в 2020 году в AppStore было доступно 4,38 млн приложений (на 10,3% больше, чем в 2019 году).

Сколько получает iOS-разработчик?

По данным HeadHunter, по состоянию на начало марта 2021 года на сайте открыто около 3 тыс. вакансий для iOS-разработчиков.

Начинающий iOS-разработчик c хорошим портфолио может зарабатывать от 80 тыс. рублей, мидл — в районе 150 тыс. рублей, синьор и тимлид — от 200 тыс. рублей.

Основные задачи:

  • создание архитектуры приложения;
  • написание кода;
  • поддержка и развитие готовых приложений;
  • участие в тестировании приложения;
  • релиз приложения в App Store.

Что ему нужно знать?

Для разработки на iOS, помимо техники от Apple, понадобится знание языков Objective-C и Swift.

Objective-C — язык более архаичный, а Swift современнее и проще. Но хотя сейчас большинство приложений для Apple и пишутся на Swift, есть и те, что написаны на Objective-C, поэтому все еще важно знать оба языка.

Не беда, если у вас нет мака, — можно потренироваться в Swift на виртуальной машине. Правда, для того чтобы собрать полноценное приложение, все-таки потребуется купить технику Apple.

Помимо этого нужно:

  • уметь создавать интерфейс приложения на основе макета;
  • знать, как создать сетевой запрос;
  • знать, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript);
  • уметь взаимодействовать с библиотеками других разработчиков;
  • уметь подключать базы данных к приложению;
  • знать архитектурные подходы;
  • уметь пользоваться системой Git, которая позволяет нескольким программистам совместно работать над одним проектом.

Все приложения пишутся в среде Apple XCode, ее можно бесплатно скачать из AppStore. Там есть средства для создания интерфейса, редактор кода и симуляторы всех устройств, чтобы протестировать готовые приложения.

Разработчик также должен знать правила сотрудничества с AppStore и в целом досконально изучить официальную документацию Apple.

iOS-разработчик с нуля

Получите перспективную профессию: освойте с нуля программирование на Swift, мобильную разработку и UX/UI для iOS. Дополнительная скидка 5% по промокоду BLOG.

Какие нужны софт-скилы?

Рассказывает Алексей Усанов:

Общаться с коллегами и решать конфликты: «Софт-скилы — это важная вещь. Ты можешь быть подкованным и умным, но если не можешь найти общий язык с командой, то грош цена твоим знаниям и умениям. Бывает, что приходит молодой, активный и веселый разработчик. Он все знает и умеет, очень талантливый. Но он может работать только один, не умеет найти общий язык с командой. Поэтому он будет решать только свои узкие задачи и не сможет расти дальше».

Корректно указывать другим на ошибки: «Часто люди думают: “Зачем мне лезть?” Но есть и те, кто, наоборот, слишком резко говорит об ошибках других — это тоже нехорошо».

Ловить дзен и спокойно принимать критику: «Если ты молодец и умеешь общаться — здорово, но это не значит, что твой коллега тоже будет тактичен и корректен. Нужно уметь принимать такие вещи, это не должно мешать работе», — говорит Алексей.

Плюсы и минусы профессии

Плюсы:

  • У Apple определенный и понятный спектр устройств. «Если под Android их может быть сотня, и внезапно может вылезти аппарат где-нибудь в Индии, которым пользуется 2 миллиона человек. Ты нигде его не достанешь, чтобы проверить, почему приложение не работает. У нас такой проблемы нет», — считает Алексей.
  • В разработке под iOS ясный цикл и понятное число версий операционных систем. Каждый год выходит новая версия, и разработчики знают, какие устройства устарели, а какие еще поддерживаются.
  • Много вариантов занятости: в компании, в студии, которая занимается приложениями, на фрилансе.


Дизайнер радостно взаимодействует с iOS-разработчиком, пока Android-разработчик тонет. Источник

Минусы:

Все эти плюсы одновременно и ограничивают, считает Алексей. Разработчик всегда находится внутри одной экосистемы. Если, например, он захочет использовать особенным образом работу с какими-то сенсорами, то сделать этого не сможет, потому что доступ к таким изменениям ограничен.

В каких случаях становятся iOS-разработчиками?

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

Заблуждения об iOS-разработке

Чем сложнее код, тем лучше приложение. Зачастую разработчики приложений на iOS считают фреймворки Apple слишком простыми и пытаются создать что-то с нуля, тратя много времени на обдумывание сложной архитектуры и разработку новых концепций. На самом деле не нужно изобретать велосипед. Все фреймворки были созданы опытными разработчиками: они точно знают, что будет работать, а что — нет.

Разработчик на iOS не может переквалифицироваться и разрабатывать приложения для Android. Если у программиста уже есть навык, он вполне может перейти на другую ОС и помимо Swift выучить Java или Kotlin либо заняться кроссплатформенной разработкой.

Как начать?

Если у вас нет компьютера на macOS, то можно попробовать кодить на Swift на виртуалке. Это можно сделать, скачав на официальном сайте языка GNU/Linux (операционные системы на основе ядра Linux и системных библиотек GNU) с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux). Другой вариант — скачать на GitHub Windows с неофициальным пакетом Swift for Windows. Среду для разработки Apple XCode можно загрузить с официального сайта Apple. Однако, чтобы полноценно собирать приложения, все-таки понадобится техника Apple.

Пошаговый план для новичков:

  • освоить общие принципы разработки — выучить основные функции и переменные, уметь разделять текст программы на файлы, а также знать основы объектно-ориентированного программирования;
  • научиться создавать интерфейс приложения на основе макета;
  • разобраться, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript). Информацию об этом можно поискать, например, на Хабре;
  • научиться создавать и использовать протоколы и подключать базы данных к приложению. В качестве базы данных можно, например, использовать MySQL. Для этого потребуется установить сервер, а также программу WorkBench, которая позволяет управлять базой данных при помощи удобного графического интерфейса;
  • изучить архитектурные подходы;
  • научиться пользоваться репозиториями в Git — как это сделать, можно посмотреть, например, здесь;
  • попробовать выложить первое приложение в AppStore.

Можно учиться разработке самостоятельно — для начала пройти вводные бесплатные курсы на Coursera.

Либо можно записаться на курс iOS-разработки SkillFactory и изучить все аспекты от программирования до фреймворков и релиза.

iOS-разработчик с нуля

Получите перспективную профессию: освойте с нуля программирование на Swift, мобильную разработку и UX/UI для iOS. Скидка 5% по промокоду BLOG

  • 12 месяцев обучения на практике
  • Помощь в трудоустройстве
  • Трансформация карьеры

Правда ли, что у Apple очень строгие гайды?

Да, интерфейсы на iOS можно создавать только по гайдлайнам, разработанным Apple. В противном случае приложение может не пройти проверку при публикации в AppStore.

В Apple очень щепетильны к дизайну. Например, в приложениях на iOS используется динамический размер системного шрифта — пользователю не нужно менять его, это делается автоматически. Также в компании рекомендуют делать дизайн максимально функциональным, избегая лишних «украшений», а также различных градиентов и падающих теней. С одной стороны, строгий гайдлайн ограничивает разработчика. Но с другой — компания постоянно обновляет инструкции и делает их максимально подробными, поэтому новичку будет проще ориентироваться.

Полезные ссылки

Гайд Human Interface Guidelines от Apple о принципах дизайна приложений.

Apple XCode — среда для разработки для iOS.

Cocoadevelopers.club — открытый клуб iOS и OS X разработчиков.

iosdevweekly — еженедельная iOS-рассылка с полезными статьями на тему iOS-разработки.

Читайте также: