Почему стоит писать мобильные приложения на Swift и с чего начать

Число пользователей смартфонов растет каждый год. В связи с этим увеличивается и количество мобильных приложений, а значит, возрастает потребность в программистах, которые их разрабатывают. Тренер Web Academy и iOS Engineer в GlobalLogic Александр Слободянюк рассказывает, почему сегодня один из самых популярных языков — это Swift от Apple, и какое будущее ждет тех, кто научиться на нем кодить.

Почему мобильная разработка, почему Swift?

На этот вопрос я могу дать, как минимум, 6 ответов. Давайте начнем с актуальности:

1. Мобильный трафик действительно растет. Это самый простой аргумент: уже в 2016 году он начал превышать десктопный трафик. С тех пор число мобильных пользователей с годами только увеличивалось. На скриншоте приведены данные statista.com: 6,4 миллиарда человек используют смартфоны в 2021 году, это около 80% населения нашей планеты. И как видим, откат такой статистики маловероятен.

2. Swift — продукт Apple. Компании, которая в 2018 стала первой компанией с капитализацией в триллион долларов. Сейчас ее капитализация — два с половиной триллиона долларов. Ее цена формируется на бирже и, в определенном смысле, свидетельствует, что это самая надежная компания из существующих. Если не верить богатейшим инвесторам, владеющим ее акциями, кому верить? На скриншоте приведены данные The New York Times.

3. Apple представила Swift в 2014 году и с тех пор непрерывно его совершенствует. К примеру, тогда на нем никто даже не думал начинать новые проекты — язык был слишком молодым и «сырым». Самая популярная фраза: «Да что на нем вообще можно написать?!».

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

Сегодня все новые нативные приложения пишутся на Swift. Около 90% вакансий на iOS требуют знания Swift. К слову, его предшественник Objective C был создан в далеком 1983 и используется сейчас только на старых проектах, которые просто слишком дорого переписывать на Swift. Количество таких проектов по естественным причинам снижается с каждым годом.

4. Если вы знаете Swift, то, в принципе, сможете писать приложения для iOS, watchOS, tv OS и mac OS. Эти платформы перечислены в порядке убывания, по количеству вакансий. Если говорить о работе в Украине, у нас больше всего проектов на iOS, а остальные платформы составляют около 10% всех проектов. Но если вы планируете переезжать на запад, там чаще встречаются вакансии под mac OS.

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

6. Бонус работы iOS разработчиком: преимущественно большие проекты. Представим, что владельцу магазина цветов понадобился сайт, чтобы упростить процесс их продажи. Скорее всего, он наймет человека, который разработает для него лендинг — сайт на одну страницу. Это быстро и дешево: обойдется в пару сотен долларов. Но если говорить о приложениях, ему придется выложить несколько тысяч долларов за простое приложение под iOS и столько же за Android. При этом, чтобы его приложение попало в AppStore, придется сделать его более сложным, чем одна страница (это связано с политикой Apple относительно размещаемых приложений). А значит, только самые большие цветочные магазины в городе могут позволить себе нативные приложения — они и станут вашими клиентами. Заказчик, над проектом которого я работаю (не будем называть его имени), тратит сейчас около $300к на разработку своих приложений в месяц. Попасть на такие масштабные проекты не так сложно, если вы занимаетесь iOS разработкой.

Ближайший курс по направлению: Swift с нуля

Чем занимаются iOS-разработчики?

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

Аутстаф-компания. Представим, что банк Америки хочет создать приложение, но IT — не его профиль. Заказывать готовое приложение он не хочет, так как оно должно поддерживаться и требования могут меняться в процессе разработки. Тогда он обращается к украинской аутстаф компании, которая «дает в аренду» команду разработчиков.

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

Продуктовые компании. В этом случае разработчик несет больше ответственности за свою работу, в сравнении с аутстаф/аутсорс компаниями. Также он должен разбираться не только в программировании, но и в предметной области, в которой работает компания. Если это продукт о недвижимости, нужно что-то знать об этой сфере. Глобально продуктовые компании делятся на супер-прибыльные и на все остальные. Если вам удалось попасть в супер-прибыльную продуктовую компанию, вы сорвали джекпот. Офис в центре города с шикарным видом с 20-го этажа, корпоративы в Италии, монитор от Apple за $5000 на столе, безлимитный отпуск, ненапряжный режим работы и остальные прелести работы на богатую компанию. Парадоксально, но в среднем такие компании платят немного меньше, чем аутсорс/аутстаф.

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

Большие компании. Это отдельный вид компаний, где разработчик является маленьким винтиком в большом механизме. Два слова: бюрократия и стабильность. В такой компании зачастую распределяются конкретные роли между людьми. Вам предстоит только кодить, а за остальные задачи отвечают другие люди. Из бонусов: a) скорее всего ваша компания знаменита, б) вы находитесь на 10 шагов ближе к возможности релокации в другую страну. Если ваша цель эмиграция, выбирайте большую аутсорс/аутстаф компанию, так называемый «бодишоп».

Западные компании отличаются от украинских и существенно различаются между собой. Особенность подхода к найму в западных компаниях в двух словах — это алгоритмы и софт-скилы. На собеседованиях в США отбор кандидатов происходит исходя из их умения мыслить (проверяется через решение задач). У нас же обычно ищут человека под технологию.

Отличие связано не только с культурой, но и, например, с тем, что у больших иностранных компаний есть собственные фреймворки и технологии. Например, у Facebook свой фреймворк, у Google свой. Каждый из них требует нескольких лет изучения и является секретным. О чем Facebook спрашивать кандидата, проработавшего 5 лет в Google?

Кроме того, количество программистов за 40 в США гораздо выше, чем у нас. Это привело к коллективному пониманию того, что технологии меняются, языки умирают, а программисты остаются. И спрашивать их на собеседовании, как работает конкретный объект в конкретном фреймворке — слишком поверхностный подход к найму.

Частые требования на позицию Trainee/Junior iOS-разработчика

  1. Опыт. Требование номер один, так как компания хочет быть уверенной, что человек сможет делать приложения и приносить прибыль. Это не обязательно опыт работы в компании, достаточно показать работающий проект, написанный вами лично.
  2. Swift (иногда пишут «знание Foundation, UIKit»). Если вы пишете приложения, то так или иначе имеете дело с этими фреймворками.
  3. ООП. Понимание принципов объектно-ориентированного программирования. Несколько понятий, которые можно озвучить за пол минуты, но изучать годами.
  4. Networking (Alamofire/experience with JSON). Это требование вызвано тем, что приложение должно не просто существовать на телефоне, а иметь доступ в интернет. В таком случае можно будет сохранять данные, отправлять и т.д. И разработчик должен знать, как это реализовать.
  5. Databases (Core data/Realm). Умение работать с ними позволит сделать так, чтобы приложение запоминало пользователя и связанный с ним набор данных. На реальных проектах это требование встречается действительно часто.
  6. Github или аналоги.
  7. Английский, at least Intermediate.
  8. Multitrading (GCD).
  9. Patterns, SOLID. Такое требование встречается чаще для более опытных разработчиков, но иногда проскакивает на позицию Junior. Речь о способности писать красивый и легко поддерживаемый код.
  10. Swift UI / Flutter.

Выводы

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

Также советуем почитать:

1
0
SAVE