logo
Ещё

iOS-разработчик – обзор профессии

Доля iPhone на мировом рынке смартфонов составляет +/-10%, и на протяжении многих лет этот показатель остается стабильным. А вот количество разработчиков под iOS в целом и iPhone в частности постоянно увеличивается, потому что: а) приложения теперь нужны чуть ли не каждому первому бизнесу; б) там, где есть Apple, есть и деньги, поэтому iOS developer явно голодать не будет. Не важно, решили вы пойти в сферу разработки мобильных приложений на платформы Apple из-за последнего пункта, или это – «зов сердца», в любом случае вас мучает простой и сложный одновременно вопрос: «iOS разработка – с чего начать?» Ниже мы на этот вопрос ответим, а так же дадим много ссылок на курсы, документации, IDE и другие полезные материалы.


Разработчик iOS – обзор профессии

iOS разработчик пишет приложения для всех платформ Apple – iPhone, iPad, часы и далее по списку. В остальном developer для Apple ничем от других разработчиков не отличается – не считая собственного набора языков и фреймворков.

На данный момент платформы iOS становятся все более популярными для разработчиков (о причинах поговорим в разделе «история»), поэтому рынок «нагревается», и джунов становится все больше. Как и всегда, количество не означает качество – толковые новички все еще в дефиците.

А вот с зарплатами все в порядке – медианная зарплата составляет 3 000$, это – высокий показатель на мобильных платформах.

На скриншоте данные за 2020 год. Сейчас цифры выросли, но соотношение сохранилось.

Как и в случае с другими мобильными продуктами, компании разрабатывают приложения для разных платформ и устройств, поэтому в компании есть и разные отделы (один – для программирования Swift, другой – для программирования под Android, третий, уже закрывшийся – для разработки под Windows Phone), и разные устройства, на которых можно тестировать то, что накодили. Это усложняет разработку мобильных приложений для новичка – вам нужен iPhone для того, чтобы на практике тестировать свои разработки. Но если денег в такую инвестицию нет, то можете учиться и без iPhone в кармане – просто это будет сложнее и многие вещи придется представлять в голове, а не тестировать.

Отдельно заметим, что iOS developer обладает одним интересным преимуществом. Поскольку код платформы – закрытый, и Apple заботится о своих разработчиках, на любой функционал вы найдете хорошо задокументированные гайды, а сам функционал будет исправно работать.

Но для справедливости нужно указать, что в этом есть и минус – зачастую Apple developer вынужден сам придумывать решения для нестандартных задач, потому что на Stackoverflow ничего нет и покопаться во внутренностях платформы, чтобы выудить ответ, тоже не получится.

История

Фактически история мобильных разработок для продукции Apple началась в 2009-м году, когда компания выкатила в масс iOS SDK и позволила сторонним разработчикам разрабатывать и запускать на своих мобильных устройствах приложения. Естественно, все тут же заинтересовались такой возможностью – и рынок начал расти крайне быстрыми темпами. С 2009 по 2014 годы в основном нужны были навыки программирования Objective-C – языка, «выросшего» из С++ и полностью заточенного под объектно-ориентированное программирование (только он на устройствах Apple и использовался, вместе с С). Но в Objective-C было множество проблем, унаследованных из C, поэтому в 2014-м году Apple заявили, что в их мобильную операционную систему добавлена поддержка Swift – нового языка программирования. По факту Swift – это улучшенный Objective-C. На нем проще писать и в нем меньше ям, в которые может угодить неопытный программист (хотя Objective-C порой ставил в тупик даже опытных разработчиков). Из этого проистекает вещь, которую вам нужно понимать: Swift существует всего 8 лет, но на нем сейчас в основном и создают приложения, поэтому вам: а) придется часто мониторить обновления языка и узнавать про новый функционал, облегчающий работу; б) наработать много навыков программирования на Objective-C, потому что он все еще в ходу. Еще Objective-C нужен ввиду легаси – вас могут звать в команды разработчиков, поддерживающих какое-либо старое (и написанное на Objective-C) приложение.


Особенности разработки приложений для iOS и отличия от Андроид

Основные особенности – это языки программирования, IDE, фреймворки и Ретина.

Из языков программирования для создания приложения для iOS используются Swift, Objective-C и C++. Про Swift и Objective-C мы уже рассказывали, С++ (или даже С) используются там, где нужно быстродействие. Swift позволяет практически бесшовно вставлять в себя С/С++ (поскольку по большей части на них и опирается), поэтому на всех версиях операционной системы вы можете дописать критический к быстродействию участок на C/C++. Такая необходимость возникает нечасто, потому что Swift – довольно быстрый язык. А вот знанием Objective-C вам стоит вооружиться, потому что языку Swift до сих пор известны не все «фишки», доступные в Objective-C.

Что касается IDE – сторонним разработчикам (у которых есть аккаунт разработчика) предоставляется доступ к Xcode, специальной IDE для создания мобильных приложений для устройств Apple. IDE – однозначно удобная, она «заточена» под разработку на Swift. Если у вас нет опыта программирования – рекомендуем именно эту IDE, компания Apple позаботилась о том, чтобы разработчикам с этой IDE было максимально удобно кодить.

Фреймворки мы рассмотрим ниже, но они в разработке под iOS – полностью свои, то есть вам в любом случае придется их учить.

Наконец, Retina. Этот пункт важен только для фронтенд-разработчиков – то есть для тех, кто создает интерфейс программы. Ретина – это технология разработки дисплеев, запатентованная Apple. Суть – в том, что в таких дисплеях пикселей на квадратный сантиметр в несколько раз больше, чем в «обычных» дисплеях. Для глаза это хорошо, потому что зернистость не видна совсем, и переходы между цветами/объектами получаются более мягкими. Проблема с точки зрения разработчика заключается в том, что если делать разметку по пикселям и для Ретины, и для обычных дисплеев – нужно писать разную разметку, потому что у Ретины больше пикселей при той же ширине. Поскольку приложения обычно разрабатываются сразу под несколько платформ, дизайн приходится частично или полностью адаптировать под разное количество пикселей. Конечно, проблему решает указание ширины объектов в процентах от ширины экрана, но это далеко не всегда можно применять, поэтому учитывайте эту особенность.


Обзор рынка труда – перспективы и зарплаты

По данным с hh.ru, на август 2022 года по тегу «iOS разработчик» можно найти 1 800 вакансий. Зарплата указана только у 540, то есть в большинстве случае о заработке работодатель и соискатель договариваются на собеседовании. Из 540 вакансий у 470 доход начинается от 95 000 рублей, то есть зарабатывать больше 100 000 рублей в качестве iOS-разработчика – не проблема. Медианная зарплата: 3 000 – 3 500$, junior-специалисты получают от 500$ до 1 500$.

Карьерный путь

Практически во всем IT карьерный путь одинаков, и рынок мобильных приложений – не исключение. В первую очередь нужно или очень хорошо выучиться самостоятельно, либо пройти какие-нибудь серьезные курсы, после чего устроиться работать в качестве Junior или Trainee на какую-нибудь «галеру» – галерами в IT называют крупные компании, чаще всего занимающиеся аутсорсом. В первые полгода вас будут обучать премудростям реального девелопмента, коллеги (по крайней мере – те, которые общительные) будут делиться с вами опытом разработки. Вы будете копаться в своей локальной песочнице, пытаясь разобраться, как устроен бизнес. Со временем вы научитесь ничего не ломать, и вас начнут допускать к простым, но уже реальным задачам.

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

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

А вот дальше начинается развилка. Можно податься в менеджмент и начать управлять командой. Можно податься в архитекторы и решать архиважные вопросы, от которых зависит вся дальнейшая разработка. Можно остаться разработчиком и углублять свои знания. Можно плюнуть на все и купить маленький ресторанчик. В общем, все дороги открыты перед Senior-разработчиком под iOS.

Что нужно знать тем, кто хочет стать востребованным специалистом

Естественно, вам нужно хорошо знать Swift и Objective-C – без них вы далеко не продвинетесь. Желательно еще знать С/С++, но изучение этой темы вы можете отложить на потом – языки очень сложные, если вы только начинаете изучать программирование, от указателей в структурах С вы быстро словите дизмораль и забросите обучение. Кроме синтаксиса языка, вам еще нужно знать встроенные с сам язык библиотеки – не забывайте об этом. 

Но языки – это только начало обучения. Есть еще и фреймворки. Фреймворк – это каркас (паттерны) + готовые библиотеки. Работать с фреймворками в десятки раз проще, поскольку много готовых инструментов и архитектура у вас уже есть – вам нужно только облепить каркас функциональными частями. Основные фреймворки:

  • UIKit. Позволяет создавать и настраивать распознавание и обработку пользовательских жестов.
  • Alamofire. Фреймворк для работы с HTTP-запросами. 
  • Moya. Большой фреймворк для работы с сетью.
  • SDK. Базовый фреймворк от Apple. Все знать вы не сможете, но нужно ориентироваться в возможностях.

Кроме того, нужно знать/понимать:

  • MVVM. Популярный шаблон проектирования для мобильных приложений.
  • MVP. Концепция разработки, при которой сначала создается минимально работоспособный продукт, а потом этот продукт обзаводится функционалом. Один из основных agile-методов разработки, существенный плюс: можно быстро показать заказчику что-то рабочее и выбить дополнительное финансирование.
  • CocoaPods. Менеджер для управления внешними библиотеками. Позволяет быстро и практически бесшовно подключать библиотеки, написанные на других языках.
  • SOLID. Популярная надстройка над ООП, позволяющая упростить разработку крупных приложений.
  • Fastlane. Набор инструментов для автоматизации разработки мобильных приложений.
  • MRC/ARC. Система ссылок в Swift, ее понимание существенно снижает потребление приложением ресурсов.

Обучение

Платные курсы

  • Skillbox. Полный курс по разработке, 12 месяцев.
  • GeekBrains. Еще один полный курс, 12 месяцев и 7 реальных проектов.
  • SkillFactory. Общий курс по мобильной разработке, не только iOS.

Бесплатные курсы

Советы по оборудованию

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

Стажировки, резюме – первые шаги

Есть 3 варианта первого трудоустройства: лаба, трудоустройство после курсов, trainee/junior.

Лаба – это специальное событие, которое время от времени устраивают крупные работодатели. Суть в том, что работодатель берет себе десяток способных учеников, платит им минимальную зарплату и обучает их на базе своего оборудования. Если вы не совсем дуб – после лабы вас возьмут работать в эту компанию, потому что работодатель уже вкинул в вас деньги и хочет отбить их. Лаба – идеальный старт карьеры, но лабы по iOS-разработке попадаются очень редко.

Второй вариант – это трудоустройство после курсов. Находите курсы, проходите их (заодно учитесь составлять резюме и проходить собеседования), получаете оффер на работу джуниором. Хороший вариант, но есть одно «но» – трудоустройство никто не гарантирует.

Наконец, последний вариант – это сразу устроиться в качестве trainee/junior. Вам понадобятся солидные навыки программирования и свой репозиторий на GitHub с парочкой маленьких проектиков, показывающих, что вы умеете писать код. Самый сложный и ненадежный вариант. 

Что почитать по теме

FAQ

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

6/10 по мифической шкале сложности, в которой 10 – это ассемблеры, 0 – это HTML. Со Swift возникают некоторые сложности, потому что язык – молодой, и гайдов не всегда хватает. Но все эти сложности преодолимы.

Что лучше – платные курсы или бесплатные?

Сначала пройдите парочку бесплатных курсов, если «зайдет», то смотрите в сторону платных. Основной плюс платных курсов – структурированная подача всего необходимого материала.

Подведем итоги

Тезисно:

  • iOS-разработчики пишут приложения для различных устройств Apple, в основном – iPhone и iPad.
  • Основные языки – Swift, Objective-C.
  • Как и у любой сферы, у разработки под iOS есть свои особенности – языки, IDE, фреймворки, Ретина.
  • Карьерный путь ничем от других мобильных разработчиков не отличается – начинаете с Junior, дорастаете до Senior и думаете, куда двигаться дальше.
  • Если денег не гора, то лучше вкладывайтесь в курсы, а не в устройства.
  • Сначала пройдите пару бесплатных курсов и посмотрите, как вам пойдет. Если понравится – выбирайте платный курс.
Часто ищут