- Разработчик iOS: зарплата, карьера, где учиться, куда пойти работать
- Немного истории
- Особенности разработки iOS-приложений
- Где нужны специалисты iOS
- Рынок разработки
- Зарплата и карьера
- Что нужно знать и уметь, чтобы стать востребованным специалистом
- Где этому научиться
- iOS-разработка: способы быстрого старта
- Путь от Apple
- Xcode
- Swift 4
- «Гибридное», «не совсем нативное» приложение
- Ionic
- PhoneGap / Cordova
- Xamarin
- React Native
- Веб, чистый веб
Разработчик iOS: зарплата, карьера, где учиться, куда пойти работать
Разработка под iOS — реальный шанс для молодых программистов попасть на работу в крупную компанию. Разбираемся, что это за профессия.
iOS-разработчики создают и поддерживают приложения для айпадов, айподов, айфонов и умных часов Apple. У яблочных гаджетов есть своя операционная система iOS — та же macOS, только оптимизированная под мобильные устройства.
Немного истории
В 2007 году Apple выпустила первый айфон 2G с операционной системой iPhone OS, которую позже переименовали в iOS. По сути, это был всего лишь плеер с возможностью звонить и выходом в интернет. Операционка была крайне несовершенна: отсутствовали многозадачность, поддержка сетей 3G, магазина Apple тогда ещё тоже не существовало. Нельзя было даже скопировать и вставить фрагмент текста или сделать вложение в электронное письмо.
Apple постоянно дорабатывала свою ОС, но революция случилась в 2008 году, когда Стив Джобс разрешил сторонним разработчикам писать приложения для айфонов. Вышла iPhone OS 2, в которой был магазин приложений App Store и комплект инструментов для разработки — iOS SDK. Так, собственно, и появились разработчики iOS.
В 2020 году вышла уже четырнадцатая по счёту версия iOS. Сейчас это мощная платформа со множеством функций, удобная и очень дружественная. Достаточно однажды её освоить, чтобы с лёгкостью переходить с одного устройства Apple на другое.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Особенности разработки iOS-приложений
Разработчики iOS — это закрытый клуб. Туда могут попасть только владельцы маков с операционкой macOS. Приложения для маков, айфонов, айпадов, Apple TV и Apple Watch создают в среде Apple XCode, работающей лишь в macOS. XCode содержит средства для построения интерфейса, редактор кода и симуляторы всех устройств — в них можно тестировать разработанные приложения.
Недавно яблочники создали новый язык — Swift. Это быстрый интерактивный язык с открытым кодом и простым синтаксисом. Он постепенно вытесняет устаревший Objective-C, больше 30 лет использовавшийся для разработки приложений Apple.
Потренироваться на Swift можно не только в OS X, но и в Linux и Windows. С официального сайта скачивается последняя версия языка для Ubuntu, CentOS и Amazon Linux, а на GitHub выложен пакет Swift for Windows. Но во всех этих продуктах отсутствует среда разработки XCode, поэтому в них нельзя построить полноценный интерфейс.
Сегодня новые проекты разрабатываются на Swift, хотя остаётся множество приложений на Objective-C — их нереально перевести на новый язык. Поэтому лучше знать оба.
Стать iOS-разработчиком — недёшево. Всё упирается в технику Apple: iMac, MacBook, Mac Pro или хотя бы относительно доступный Mac mini. Начинающие разработчики покупают старенькие макбуки, но нужно учесть, что они должны быть не слишком древними — не старше 3-4 лет. Кроме того, для публикации приложения в AppStore нужен аккаунт разработчика. Он платный, стоит 99 долларов в год.
Всё это было бы очень неприятно, если бы не один нюанс: разработчики iOS — среди самых высокооплачиваемых специалистов в IT. Затраты быстро окупятся, когда программист начнёт работать.
Где нужны специалисты iOS
По данным на начало 2020 года, Apple — в пятёрке самых популярных брендов на российском рынке смартфонов. На долю устройств, работающих на iOS, приходится 10% от общего количества проданных гаджетов.
Многие компании создают собственные приложения для Apple и нуждаются в специалистах. iOS-программистов приглашают на работу крупные организации, интернет-магазины и госструктуры.
Нередко опытные разработчики открывают собственные компании, разрабатывают приложения и выставляют их в App Store. Apple забирает себе 30% с продаж, но 70% всё равно идёт создателю приложения.
Вот самые перспективные направления в iOS-разработке:
- Детские, взрослые, семейные игры: стрелялки, гонки, квесты, аркады, логические задачи. Основная целевая аудитория — люди до 27 лет, но и пользователи постарше тоже любят поиграть.
- Приложения для брендов: интернет-магазины, бонусные программы и тому подобное. Самые популярные сервисы — доставка еды, заказ такси, покупка билетов.
- Приложения для доступа к контенту — новостям, курсам валют, системам тренировок, обучающим программам.
- Социальные сети: это не только Instagram или Facebook, но и маленькие сети для поиска друзей, обмена фото и видео, отзывов, общения по интересам.
Особая группа — программы для бизнеса и госструктур: мобильные рабочие места, личные кабинеты, чат-боты, банковские приложения для юрлиц, бизнес-аналитика и менеджмент. Их создают крупнейшие компании — разработчики мобильных приложений. Попасть туда на работу нелегко, но высококвалифицированные специалисты нужны везде.
Рынок разработки
Из-за высокого порога входа в профессию рынок iOS-разработки не насыщен. Особенно велика потребность в квалифицированных специалистах с опытом работы.
По данным HeadHunter, с 2013 года спрос на iOS-программистов вырос в два раза. На одну вакансию в среднем приходится по два человека — это меньше, чем конкурс среди других IT-специалистов.
Компании конкурируют за квалифицированных разработчиков. Многие готовы брать в большие проекты и обучать программистов начального уровня, если сочтут их достаточно перспективными.
Зарплата и карьера
По данным HeadHunter на сентябрь 2020, средняя зарплата разработчиков iOS в Москве — 140–150 тысяч рублей. В регионах — от 70 до 100 тысяч рублей.
Карьерный рост разработчика от стажёра до сениора — 3–5 лет.
- Начинающий программист обычно поступает на место стажёра на небольшую зарплату — около 30 тысяч рублей. Если хорошо себя зарекомендует, то через год-полтора может стать младшим разработчиком мобильных приложений, или junior developer.
- Зарплата джуниора составляет 40–80 тысяч рублей в зависимости от региона. Он работает под руководством опытного наставника. Чтобы продолжить карьерный рост, придётся развиваться: читать специальную литературу, проходить видеокурсы. При должном старании через год-полтора junior переходит на уровень middle.
- Middle-разработчик зарабатывает лучше: 70–150 тысяч рублей, а то и больше. Он самостоятельно решает поставленные задачи, тестирует компоненты. Через полтора-два года может подняться на следующую ступень — стать ведущим разработчиком, или senior developer.
- Senior — это востребованный высокооплачиваемый специалист с оплатой 180–300 тысяч рублей. Он решает сложные задачи и несёт ответственность за проект. Часто его назначают наставником для новичков.
В дальнейшем старший разработчик может занять должность руководителя проекта, руководителя группы разработчиков или стать начальником отдела разработки.
Что нужно знать и уметь, чтобы стать востребованным специалистом
- Нужно иметь практические навыки работы со Swift, Objective-C, знать XCode, Cocoa, iOS SDK.
- Большим плюсом станет знание других языков программирования: С++, CSS, Java, JavaScript, HTML, SQL.
- Для совместной работы с другими разработчиками понадобится Git, поэтому лучше изучить его заранее.
- Нужно уметь работать с чужим кодом.
- Как и везде в программировании, понадобится знание английского языка.
- Необходимо знать правила работы с App Store, уметь загружать туда приложения, обновления и тому подобное.
Важное преимущество для любого специалиста — хорошее портфолио. Круто, если в нём будет несколько серьёзных проектов для AppStore.
Где этому научиться
Разработку под iOS можно самостоятельно изучать по книгам и мануалам, но это не всегда эффективно и отнимает много времени. На курсах Skillbox вы сможете освоить профессию разработчика iOS с нуля, получите серьёзные знания для успешной карьеры, сделаете несколько интересных проектов. Тем, кто прошёл полный курс обучения, мы помогаем с трудоустройством.
Источник
iOS-разработка: способы быстрого старта
Когда мы задумываемся о разработке под iOS, чаще всего в голове возникает пятизначная сумма входного порога: как минимум нужно iOS-устройство на последней версии ОС и Mac. Если вы уже пишете под iOS, вам наверняка известны альтернативные варианты, а если нет — посмотрите, вдруг пригодится? Приведенный ниже обзорный пост — как раз на этот случай. Под катом вы найдете довольно простую информацию, так что если хотите хардкорчика, вам не сюда!
Итак, у нас в руках iOS-устройство, в голове — идея приложения, в сердце — желание поскорее овладеть новыми знаниями. Перед нами три пути, прямо как у былинного богатыря:
- Берем Mac (точнее, нам нужна OS X), берем Xcode с iOS SDK, берем Objective-C или Swift, делаем проект, и на выходе получаем самое настоящее, «нативное», iOS-овское приложение, которое даже можно со спокойной душой засабмитить в App Store, и радоваться
показу баннеровтому, что наша небольшая разработка приносит людям радость. - Берем хоть Mac, хоть Windows-машину, выбираем фреймворк, позволяющий писать мобильные приложения на более знакомых многим языках (JavaSctipt, C#). Заботу о том, как наш код выполнится на устройстве, возьмет на себя фреймворк: для обеспечения выполнения с нашим кодом будет слинкован механизм исполнения кода (runtime), в задачи которого, среди прочего, входит трансляция вызовов используемого языка программирования в API мобильной платформы. Плюс подхода состоит в определенной независимости от конкретной мобильной платформы (с которой нас связывает только сам runtime), минус же — в меньшей, чем у «родного» приложения, скорости работы.
- Берем
Блокнотлюбой редактор текстовых файлов, ваяем веб-страницу, должным образом ее обустраиваем, и на выходе получаем веб-приложение, которое, по сути, будет запускаться в полноэкранном окне браузера (как самое настоящее приложение на платформе — без адресной строки браузера), но работать будет, конечно, со скоростью и отзывчивостью обычной веб-страницы. В первую очередь это будет видно при отсутствии нормального интернет-соединения, однако, согласитесь, даже такой вариант иногда удобен. Веб-приложение, кстати, имеет тот плюс, что для доступа пользователей к нему страницу не требуется отправлять в App Store, достаточно дать людям ее URL и предложить добавить себе «на домашний экран».
Путь от Apple
Путь настоящего джедая тру iOS-разработчика лежит в плоскости следования идеям Apple. Свежий SDK, свежая же версия Xcode, документация от Apple по технологиям Apple, форумы разработчиков на технологиях Apple – если вдуматься, а что ещё нужно для создания отличного приложения, кроме толики времени? Польза очевидна: разработка идет самым близким к платформе и к идеологии Apple образом, с использованием всех новинок, предлагаемых Apple в текущем (и будущих) iOS API, так что постоянное изучение нового приносят больше хорошего, чем плохого.
Новинки Apple озвучивает регулярно. На последней конференции для разработчиков WWDC 2017 были показан новый SDK и новая версия среды для разработке Xcode. Список изменений довольно обширен (тем более в преддверии выхода iOS 11):
Xcode
Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!
В Xcode появилась поддержка Markdown. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:
(Источник)
Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.
(Источник)
Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.
(Источник)
Из менее выделяющихся, но тем не менее полезных фич, можно назвать:
- Новую систему сборки (кстати, написанную на Swift);
- Поддержку GitHub;
- UI debugger стал показывать UIViewController;
- Добавили больше проверок (например, main thread API checker и undefined behavior tracking);
- Параллельный запуск тестов на разных устройствах и симуляторах, UI-тесты нескольких приложений;
- «Беспроводную» отладку на нескольких устройствах для проверки приложений под iPad и iPhone.
Swift 4
Это изменение стоит особняком. Все, кто уже пережил чувство «в Swift 2 было, в Swift 3 пропало?!», могут ощутить дежавю, но сейчас ожидаются изменения, скорее, в лучшую сторону (впрочем, замечу вполголоса, когда это было не так, по мысли авторов-то?)
- Приложения, написанные на Swift 4, станут меньше в размерах.
- Swift 4 получит встроенную поддержку кодирования/декодирования в/из JSON. До Swift 4 приходилось много писать много кода самому, либо использовать сторонние кодогенераторы. Сейчас этот код генерирует компилятор. Отдельное спасибо!
- Возврат к удобной модели работы со строками, которая была реализована в Swift 2 и убрана в Swift 3. Вместе с этим изменением строки станут лучше поддерживать Unicode («чтобы ваши любимые приложения корректно показывали все ваши emoji»), а работа с ними ускорится.
- Проекты, в которых используется и Swift, и Objective-C, будут собираться на 40% быстрее за счёт улучшений в Xcode 9 и его системы сборки.
- Apple (как обычно) обещает простую миграцию на Swift 4, и одновременную поддержку разных кодовых баз (3.2 и 4.0).
«Гибридное», «не совсем нативное» приложение
Уточню: термин, вынесенный в заголовок, даже по сути своей не очень верен. Приложения, которые мы получим в результате, самые что ни на есть нативные в смысле того, что они исполняются на той же iOS, на том же железе, что и любое другое ПО для iOS, просто сам процесс разработки позволяет использовать не только предложенные Apple технологии и языки программирования. Если человек умеет писать, скажем, на JavaScript, и не хочет разбираться в Swift, то Apple ему ничем не поможет (кроме, конечно, хорошего учебника по Swift), а вот вариант написать, условно говоря, приложение на JavaScript, а потом запустить его на iOS, как если бы оно было написано в Xcode (получив, таким образом, некий «гибридный» вариант) существует, и вполне востребован.
Ionic
Ionic – один из самых известных фреймворков для кросс-платформенной разработки. Он построен на базе Apache Cordova, что обеспечивает доступ к различным функциям устройства, таким как геолокация, push-уведомления, камера и прочим, и позволяет разработчикам создавать приложения для iOS и Android с веб-технологиями, такими как HTML, CSS и JavaScript.
В дополнение к фреймворку, Ionic может похвастаться целой экосистемой, облегчающей разработчикам-новичкам процесс изучения и вхождения. Ionic Cloud предоставляет разработчикам различные инструменты для управления, развертывания и масштабирования приложений на Ionic. Ionic Creator представляет собой визуальный редактор, который позволяет разработчикам быстро прототипировать и создавать мобильные приложения методом drag&drop. Наконец, существует Ionic View — бесплатное приложение для iOS и Android, которое позволяет разработчикам легко делиться своим Ionic-приложением с пользователями, тестерами и клиентами без необходимости развертывать приложение в магазине приложений конкретной мобильной платформы. Разработчики просто отправляют пользователям приглашение из приложения Ionic View, и как только оно принято, пользователь может загрузить и запустить конкретное приложение в своей копии Ionic View — так, как если бы приложение было установлено на его телефоне из магазина приложений.
Увы, есть и «ложка дегтя». Приложения, написанные с использованием Ionic, используют WebView, в результате мы получаем самое натуральное веб-приложение, со своей обычной (обычно не самой впечатляющей) скоростью работы. За счет этого трудно считать его подходящим для создания тяжелых приложений, таких, как игры, либо программы с интенсивным использованием графики. Разработка с Ionic требует хороших знаний Angular, по крайней мере при желании «выжать» из фреймворка как можно больше.
PhoneGap / Cordova
PhoneGap исходно был создан компанией Nitobi. В 2011 году, Adobe приобретает Nitobi и бренд PhoneGap. Adobe затем передает одну из версий PhoneGap (назвав её Cordova), в Apache Foundation, оставив себе бренд PhoneGap и его как продукт. В результате Cordova можно рассматривать как движок, стоящий под капотом PhoneGap (а также некоторе другие гибридные фреймворки). PhoneGap, в свою очередь, добавляет к возможностям Cordova свои, дополнительные, функции.
PhoneGap во многих отношениях очень похож на Ionic. Он так же дает разработчикам возможность создавать кросс-платформенные приложения при помощи веб-технологий, и так же построен на базе Apache Codova. Однако PhoneGap не привязан к какому-то определенному Javascript-фреймворку, поэтому разработчики имеют бОльший выбор, на чем и как они будут создавать свои приложения. У PhoneGap имеется десктопное приложение, мобильное приложение, и облачный сервис под названием PhoneGap Build, который позволяет собирать и деплоить приложение.
Увы, подобно Ionic, PhoneGap использует WebView (который в iOS работает довольно медленно), так что со скоростью у приложений, созданных на базе этого фреймворка, дела не всегда обстоят блестяще.
Xamarin
Основанная в 2011 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается. Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).
Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.
React Native
Проект React Native появился на свет в Facebook, и построен на основе React. Наше JS-приложение крутится на встроенном в iOS движке: на нем выполняется код и производятся все манипуляции с нативными виджетами ОС. React Native сопоставим с Xamarin, при этом приложения, созданные с помощью React Native, очень похожи на нативные приложения iOS и Android (потому что они собственно, оперируют нативными UI-элементами).
Синтаксис React довольно прост, что облегчает изучение фреймворка, а Стандартная библиотека UI-компонентов в поставке React Native содержит много полезных компонентов, однако самым большим отличием React Native от других JavaScript-фреймворков называют возможность использования кода на на Objective-C и Swift (чаще для для улучшения производительности или более тонкого взаимодействия с мобильной платформой). На практике это означает, что разработчики могут использовать существующие собственные библиотеки в своих приложениях React Native.
Веб, чистый веб
Часто недооцениваемая возможность использовать веб-страницу как отдельное приложение тем не менее к нашим услугам: если нет особых проблем со связью, а приложение обладает несложной функциональностью (вывод таблицы данных, или вывод постоянно обновляемого списка), то нет причин не воспользоваться старым добрым веб-просмотром информации с сервера.
Разница между открытием той же страницы в браузере будет в оформлении экрана: элементы управления браузера (в т.ч. и адресная строка) будут спрятаны, а содержимое страницы окажется выведенным на весь экран устройства. Из неудобств нас, конечно, ждет довольно долгое время открывания такого «приложения» (что связано со скоростью ответа удаленного веб-сервера), но для ряда применений это, думаю, вовсе не проблема.
Разработка приложений для мобильных платформ имеет свой подвох: поначалу думаешь, что дело не стоит усилий и времени, затем твоим приложением начинают пользоваться люди, причем пользоваться, в буквальном смысле нося его с собой, и вот тут ты понимаешь, что дело оказалось глубже, и затянуло тебя больше, чем ты мог бы себе представить.
Если вы любите мобильную разработку так же, как любим ее мы, рекомендую обратить внимание на следующие доклады Mobius 2017 Moscow (да-да, в ноябре Мобиус едет в Москву, если вы еще не знали):
Источник