itechart_logo

iOS-разработчик: что учить, где брать опыт?

Students Lab Development & QA

Среди плюсов профессии iOS-разработчика — высокая востребованность, хорошие финансовые перспективы, престиж. Кроме того, конкуренция на рынке труда ниже, чем, к примеру, в мире Android-разработки. Спросили Александра Терешкова, Software Engineer из iTechArt, об особенностях iOS-разработки, подводных камнях и путях вхождения в профессию.

В чем особенности iOS-разработки, и сильно ли она отличается от работы с Android?

Начать карьеру iOS-разработчика непросто хотя бы потому, что нужные девайсы стоят недешево. На Windows писать под платформу от Apple без разных хаков и обходов нельзя, нужен MacBook или Mac mini, желательно iPhone. Не каждый студент или начинающий инженер могут себе их позволить. По этим причинам я свою карьеру начинал с Android.

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

В последнее время чаще стараются создавать приложения сразу и для Android, и для iOS, то есть кроссплатформенные. Из-за этого в тренде такие инструменты и технологии, как React Native и ставший очень популярным Flutter. Последний позволяет писать не только мобильные приложения, но и для веба и десктопа, причем, делать это на Windows.

Можно ли входить в мобильную разработку через кроссплатформенную разработку, или лучше начинать с нативной, под одну систему?

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

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

Другое дело, что нужно будет изучать еще один язык программирования. Хоть Kotlin и Swift в целом похожи, но пересесть за пару дней с одного на другой не получится. Оба языка часто модернизируются, улучшаются, и быть на гребне волны и тут и там довольно сложно. Поэтому Flutter предлагает такой подход: один язык, на котором можно писать под разные платформы.

Какие языки и технологии сейчас популярны в iOS-разработке?

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

Если в общих чертах обрисовать подход к созданию современного приложения, то это архитектуры VIPER или MVVM, или их разновидности, плюс в 9 из 10 проектов используются фреймворки для реактивного программирования: RxSwift, ReactiveSwift или Combine — фреймворк от Apple, доступный “из коробки” с версии iOS 13.

Тема реактивного программирования может быть сложной для новичков. В университете и практически любом обучении основам Computer science фундамент основывают на объектно-ориентированном программировании. Реактивное — это следующий шаг. Приложения можно разрабатывать и без него, но оно дает новые возможности, позволяет делать многие вещи проще и быстрее. Мы так и обучаем: вначале создаем что-то стандартным подходом, а потом делаем то же самое, применяя реактивное программирование, и показываем разницу.

Что нужно знать, чтобы начать карьеру iOS-разработчика?

Александр Терешков, Software Engineer

Независимо от того, идете вы в iOS-разработку или другую область, понадобятся знания алгоритмов и структур данных. Это база, которая позволяет понять, чем вообще оперируют инженеры. Дальше — объектно-ориентированное программирование. Также важен английский.

После освоения базы приступайте к изучению мобильной разработки и основ синтаксиса Swift, языка программирования для iOS. Образно говоря, вы не только должны понимать, что такое массив, но и уметь написать его. Изначально даже не обязательно на Swift. Если, к примеру, умеете делать это на Java или C#, тоже хорошо, так точно будет проще влиться. Затем беритесь за среду разработки Xcode, документацию, изучайте примеры.

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

Сначала человек пишет “Hello World!”, потом пытается сделать более сложные вещи, пишет собственное простое приложение. В процессе он понимает, нравится ему это занятие или нет. Важно, чтобы нравилось.

Обязательно ли иметь профильное университетское образование, или хватит курсов, самостоятельного изучения?

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

Александр Терешков, Software Engineer

В нашей работе очень важны обучаемость и усидчивость. Гораздо важнее, чем профильное образование.

Где брать информацию?

Информации сейчас очень много: есть и YouTube, и много англо- и русскоязычных ресурсов, на которых можно найти пошаговые руководства, что и в каком порядке учить. Есть платные и бесплатные курсы: стэнфордский курс iOS-разработки, курс от Angela Yu на Udemy.

Можно найти чат или форум и задать вопрос там — разработчики подскажут, что нужно учить и каким путем идти. Правда, каждый будет исходить из своего опыта. Но обычно в Google можно найти ответы практически на все вопросы.

Могу посоветовать эти ресурсы: https://swiftbook.ru/, https://www.raywenderlich.com/, TG каналы CocoaHeads и Laba42, а также знаменитый курс CS 50, дающий основы программирования и компьютерных наук.

Хватает ли iOS-разработчиков, большая ли среди них конкуренция?

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

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

Александр Терешков, Software Engineer

В iOS вряд ли получится попасть быстро, но если уже попадешь, то без работы не останешься.

Где получить опыт начинающему специалисту?

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

Александр Терешков, Software Engineer

Попав в компанию, даже на самую начальную позицию, без дела сидеть точно не будете. Еще можно вспомнить фриланс, но туда с нуля из-за недостатка знаний не попасть. Мой совет новичкам — как можно раньше устроиться в компанию.

В iTechArt начать карьеру можно со стажировки — следите за новостями в соцсетях и обновлениями на сайте, где мы объявляем наборы. Кандидату нужно будет заполнить форму, пройти собеседование с HR менеджером и небольшое техническое интервью. На стажировке вы будете разрабатывать проект под руководством закрепленного за вами ментора. Большинство задач и технологий из него встретятся уже в реальной работе. По результатам стажировки решится вопрос о предложении работы в компании. Могу сказать, что большинство стажеров из прошлого набора получили оферы. То есть, если человек готов работать, изучать новое, то у него высокие шансы начать работу в iTechArt. Также отмечу, что стажировка отличается от курсов. На курсах дается больше готовой информации, на стажировке мы скорее проверяем ваши способности к самообучению. Конечно, это не значит, что вы не будете получать знания и помощь в трудных ситуациях, просто у вас уже должно быть понимание процесса и какая-то база.

Есть ли шанс устроиться в компанию у человека без опыта, если он на собеседовании продемонстрирует хорошие знания и мотивацию?

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

Александр Терешков, Software Engineer

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

Сейчас у многих студентов, которые присылают CV, есть репозитории на GitHub, многие пробуют делать собственные, тестовые проекты. Мне кажется, раньше этого было поменьше. Пусть там какие-то очень простые, полупустые приложения. Но то, что они есть, это уже хорошо, менторы обращают на это внимание.

Расскажи о своих интересных проектах?

Как раз последний проект был интересным. Было приложение для iOS и Android, написанное на Flutter, а нам нужно было сделать, чтобы оно заработало еще и в вебе. Задача довольно необычная для мобильных разработчиков, чаще наоборот — сайт или веб-приложение просят написать для мобильной платформы. Но мне кажется, что таких задач будет становиться больше.

Тренд такой: заказчики хотят делать приложения для большего количества платформ за меньшее время и с меньшими бюджетами. Из-за этого стала такой востребованной кроссплатформенная разработка. Появились мощные инструменты, которых раньше не было, такие как Flutter и React Native. И действительно, зачастую создавать одну кодовую базу для разных платформ быстрее и дешевле, чем делать отдельную итерацию для каждой. Так что отрасль развивается в здоровой конкуренции: дешевле, быстрее и везде.

Интересуешься направлением? Прямо сейчас в iTechArt ведется набор на стажировки Junior Mobile Developer: в Витебске и Минске! А еще у нас немало вакансий для более опытных iOS-разработчиков — познакомиться с ними можно тут

Поделиться статьей: