Календар ігор на грудень 🎮

Кто такой iOS Developer. Как украинский разработчик на фрилансе создавал клоны приложений Instagram, ТікТок, Telegram

Специалист по мобильной разработке для Apple, Ярослав Вишняк имеет более 5 лет коммерческого опыта в профессии. Он работал в шведской компании Beetroot, стартапе OneSurgery, украинском стартапе AgroOnline и одного из крупнейших в мире гемблинговых брендов 888Holdings.

Сейчас, в продолжении серии материалов о профессиях в IT, Ярослав рассказал dev.ua о навыках, круге обязанностей, уровне зарплат и других подробностях о iOS разработчике.

Оставить комментарий
Кто такой iOS Developer. Как украинский разработчик на фрилансе создавал клоны приложений Instagram, ТікТок, Telegram

Специалист по мобильной разработке для Apple, Ярослав Вишняк имеет более 5 лет коммерческого опыта в профессии. Он работал в шведской компании Beetroot, стартапе OneSurgery, украинском стартапе AgroOnline и одного из крупнейших в мире гемблинговых брендов 888Holdings.

Сейчас, в продолжении серии материалов о профессиях в IT, Ярослав рассказал dev.ua о навыках, круге обязанностей, уровне зарплат и других подробностях о iOS разработчике.

На пути к разработчику iOS

Ярослав окончил Киевский национальный торгово-экономический университет по специальности Магистр инженерии программного обеспечения.

Он начал изучать Swift сам, будучи студентом, через бесплатные источники. Хотя сначала в университете он начал с C++ и Java и намеревался заходить в разработку Android. Но, после знакомства со Swift, обратил свое внимание в разработку iOS.

«Не помню, чтобы тогда были какие-то хорошие упорядоченные курсы по Swift, поскольку она не так давно появилась», — вспоминает Ярослав.

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

Учебные материалы преподавали преимущественно энтузиасты, желавшие поделиться новым крутым языком и фишками среды и платформ Apple, но они были преимущественно англоязычные.

По пути в профессии Ярослав рассказывает, что сталкивался со многими интересными ситуациями. В основном они касались заказчиков на фрилансе, которые постепенно меняли ТС, чтобы создать клон популярных продуктов типа Instagram, ТикТок, Telegram и других.

«Это странная ситуация, когда ты начинаешь делать вроде бы оригинальный продукт, а впоследствии оказывается, что нужна просто копия уже существующего популярного приложения, иногда даже к дизайну», — объясняет разработчик.

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

Что такое iOS-разработка

Индустрия мобильных приложений растет и развивается назад. Никто не хочет заказывать еду или курьерские услуги с сайта. Все это, а также пользоваться умным домом и смотреть в дополненной реальности новую квартиру и многие другие хотят это делать с помощью собственного смартфона. Кроме того, даже государственные органы тоже заказывают разработки мобильных приложений, которые сейчас хорошо функционируют, например, «Дія» или «Киев Цифровой».

«То есть постоянно появляются новые сценарии и есть новая интересная работа», — говорит Ярослав.

iOS Разработка — это разработка программного обеспечения для iOS, iPadOS, WatchOS. Основным инструментом сейчас является язык программирования Swift, представленный в 2014 году на смену Objective-C. Это также C подобный, открытый, мультипарадигмальный компилируемый язык. Кроме того, она может использоваться для разработки под macOS, tvOS и серверной логики.

Различия веб и мобильной разработки

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

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

«А давайте мы сюда засунем какое-нибудь машинное обучение, и сделаем как-то фишку», — объясняет он.

Преимущества именно мобильной разработки — это возможность поработать с новейшими крутыми технологиями типа ML, AR, разных умных домов, технологиями позиционирования и т. д.

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

Как отмечает Ярослав Вишняк, хороший мобильный IOS разработчик — это визионер, который скажет заказчику или тем-лиду: «Смотрите, эта фишка здесь не нужна — она все сломает, а нужно сделать так и так, но это будет работать и у меня есть несколько вариантов как это может работать».

iOS разработчиком, мобильным разработчиком, может быть человек, использующий Swift для написания программного приложения. Кроме того, есть языки, вроде Java and React Native и Dart, которые пишут таким образом сразу под две платформы под Android, и под iOS, а также кроссплатформенные решения Xamarin и другие.

Также сейчас есть разные кроссплатформенные подходы, например, Zero-code, когда из шаблонов можно сделать приложение, но Ярослав не сталкивался, чтобы кому-то на рынке был нужен такой специалист.

Обязанности разработчика iOS

iOS разработчик может иметь разный пул обязанностей в зависимости от типа проекта. Где-то это разработка приложения в рамках методологии. Иногда разработчик мобильных приложений занимается и мануальным тестированием своего продукта. Бывает, что нужно помогать в разработке ТС для UI дизайнеров и разработчиков API для вашего приложения. Также могут потребоваться навыки прототипирования и навыки создания UI по гайдлайнам.

Что должен знать iOS-разработчик

База

Базово мобильный разработчик должен знать Swift или Objective-C. Будет плюсом знать SwiftUI, потому что некоторые фреймворки уже работают в декларативной парадигме. Базовый инструментарий нужно знать, например UIKit, содержащий основные компоненты пользовательского интерфейса. Также уметь использовать среду разработки и инструменты тестирования, например симулятор.

iOS Trainee.

Должен иметь навыки, которые указывал выше. И хорошие навыки коммуникации/поиска информации, чтобы развиваться дальше.

iOS Junior developer

К навыкам Trainee должно добавить понимание того, как работает приложение, как строится архитектура. Должен уже уметь писать запросы на сервер и подключать сторонние библиотеки, пользоваться сторонними сервисами для мониторинга. Должен иметь навыки работы с БД.

Middle iOS developer

Ко всем предварительным требованиям прилагается способность полностью написать приложение с нуля. Понимать, что такое UI и Unit тесты, уметь применять их. Знать больше одной архитектуры и засовывать по ситуации более целесообразную. Также иметь навыки для оценки рисков и возможной затраты времени. Будет плюсом умения общаться с посторонними разработчиками, чтобы адаптировать библиотеки под свои нужды. Должен работать в методологии.

Senior iOS developer

Уже должен спланировать полностью разработку приложения, включая CI/CD. Также должен уметь менеджерить не только свои задачи, но и смежные. Контролировать качество кода, понимать разные подходы к прототипированию архитектуры. Должно быть понимание о мобильной безопасности и ее стандартах. Также Senior должен иметь представление о работе системы и приложений на уровне работы с железом, менеджменте памяти, знать нюансы системы и инструментария.

Бонус-плюс для всех

К этому, конечно же, прилагается и знание английского, который понадобится с самого старта карьеры. И очень хорошим плюсом будут академические знания о строительстве и работе компьютерной техники. Ценный специалист будет постоянно актуализировать знания, поскольку постоянно эволюционирует Swift, iOS и SDK. К примеру, не так давно появился SwiftUI, который конечно надо учить.

iOS developer Зарплаты

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

  • Trainee — $300–700.
  • Junior $700–1500.
  • В среднем $1500–3000.
  • Senior $3000–6000 (на самом деле верхней планки нет, но обычно это до $6000).

Как говорит Ярослав, специалист, специализировавшийся на кроссплатформенных языках программирования, и производящие проекты и для Android, и под iOS, мог претендовать на большую зарплату. Так вообще человек получал больше, а компании тратили меньше, ведь работал один человек вместо двоих.

«Но сейчас таких вакансий стало меньше, то есть компании вновь готовы платить за нативную разработку человеку на Android за Java или Kotlin, а человеку, который будет заниматься iOS, по Swift и Objective C, соответственно», — отмечает он.

Где выучиться на iOS-разработчика

Можно научиться многим навыкам из бесплатных источников. На youtube есть курсы iOS разработки, в том числе куча примеров разработки комплексных приложений.

Еще стоит отметить о большом количестве энтузиастов, которые в последнее время организуют большое количество конференций и митапов, на которых делятся идеями в разработке, архитектурами подходами к работе с данными, интерфейсами, мобильной безопасностью, тестированием, показывают на продакшн эксперименты с идеями, т. е. горизонты, что очень круто для новичка, только входящего в профессию.

«Самотужно можно научиться как языку, так и работе со сложными API», — объясняет Ярослав.

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

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

Что нужно учить в первую очередь

По словам опытного разработчика, учить нужно Swift. Затем работа с базовыми системными API, работа с сервером и сторонними библиотеками, в процессе разобраться с Human Interface и уметь прототипировать дизайн. Важно учиться читать документацию. Этого уже достаточно для начала работы в коммерции. Сейчас уже начинают сразу со SwiftUI, но я бы не советовал большинство проектов до сих пор на Swift, некоторые до сих пор на Objective-C. Вход со Swift будет сложнее SwiftUI, если это ваш первый язык, но потом будет куда легче.

Книги

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

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

Кроме того, очень рекомендую серию книг от Рэя Вендерлинча (Ray Wenderlich). Там есть куча книг по разным iOS фреймворкам, в частности, рекламное программирование на Swift или геймдев.

Hacking with Swift от Пола Хадсона.

«iOS15 Programming fundamentals with Swift» от издательства Oreilly.

«Swift 4 Protocol-Oriented Programming» от Джона Хоффмана (Jon Hoffman).

«Server-side Swift» от Пола Хадсона (Paul Hudson).

Среди советов книг, не относящихся к непосредственным iOS-разработкам или Swift, Ярослав посоветовал классику типа Чистого Кода, Канбана, которая может быть в общем полезным для любого разработчика современного продукта.

Читайте главные IT-новости страны в нашем Telegram
Читайте главные IT-новости страны в нашем Telegram
По теме
Читайте главные IT-новости страны в нашем Telegram
Справочник IT профессий: карьера в Salesforce или приключение с множеством очей
Справочник IT профессий: карьера в Salesforce или приключение с множеством очей
По теме
Справочник IT профессий: карьера в Salesforce или приключение с множеством очей
Справочник IT-профессий. Кто такой Java Developer: обзор от Team Lead & Engineering Manager SPD-Ukraine Владимира Шевченко
Справочник IT-профессий. Кто такой Java Developer: обзор от Team Lead & Engineering Manager SPD-Ukraine Владимира Шевченко
По теме
Справочник IT-профессий. Кто такой Java Developer: обзор от Team Lead & Engineering Manager SPD-Ukraine Владимира Шевченко
Справочник ИТ профессий. Кто такой инженер-электронщик, который должен знать и где может учиться
Справочник ИТ профессий. Кто такой инженер-электронщик, который должен знать и где может учиться
По теме
Справочник ИТ профессий. Кто такой инженер-электронщик, который должен знать и где может учиться
Електробайки по-українськи між Києвом та Лос-Анджелесом в «СКШ»

Дивіться, чим живе Delfast під час війни в Україні

Мы запускаем рассылку об украинском IT-комьюнити. Оставьте email, чтобы понимать больше. Премьера — скоро!
Спасибо! На указанный адрес отправлено письмо для подтверждения подписки.
Читайте также
Профессии в IT. Кто такие тимлиды, что они должны знать и как их оценивать?
Профессии в IT. Кто такие тимлиды, что они должны знать и как их оценивать?
Профессии в IT. Кто такие тимлиды, что они должны знать и как их оценивать?
Большинство молодых айтишников с первых дней работы мечтают вырасти до сеньора и стать тимлидом, менторить джунов и помогать команде решать сложные задачи. Однако какими именно компетенциями должен обладать тимлид, что уметь и где учиться — вопрос для многих открыт. Чтобы прояснить эту ситуацию, мы пообщались с Solutions Architect в компании DataArt Дмитрием Куперманом, уже много лет занимающимся асесментом тимлидов в компании: проводит интервью и оценивает подготовку и опыт коллег и кандидатов.
В Google рассказали о новой шпионской программе, грозящей iOS и Android
В Google рассказали о новой шпионской программе, грозящей iOS и Android
В Google рассказали о новой шпионской программе, грозящей iOS и Android
«Менеджмент не заканчивается на словах Agile или Kanban"». Кто такой Project Manager и как им стать
«Менеджмент не заканчивается на словах Agile или Kanban"». Кто такой Project Manager и как им стать
«Менеджмент не заканчивается на словах Agile или Kanban"». Кто такой Project Manager и как им стать
Желающих войти в IT с каждым днем становится больше. Однако большинство потенциальных айтишников оказываются перед сложным выбором: кем стать, чтобы работать в сфере информационных технологий. dev.ua начинает новую рубрику, в которой будет рассказывать, какие специальности в украинском IT есть, что делают конкретные специалисты и где учиться, чтобы стать айтишником. Сегодня о профессии Project Manager рассказывает опытный PM в EPAM Яна Стильчук,
В школах теперь смогут преподавать IT-специалисты без педагогического опыта
В школах теперь смогут преподавать IT-специалисты без педагогического опыта
В школах теперь смогут преподавать IT-специалисты без педагогического опыта

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментариев пока нет.