Полезные ресурсы, чтобы прокачаться в iOS-разработке
Конечно, все начинают с официальной документации. Там есть ответы почти на все фундаментальные вопросы о языке и технологиях, а компания постоянно улучшает опыт взаимодействия с порталом — например, разрабатывает интерактивные туториалы. Но одной только документации недостаточно, чтобы быть в контексте современных трендов в iOS-разработке.
Расскажу, что пригодится разработчикам на разных уровнях погружения в iOS.
Почему разработка для iOS — топовое направление для развития и какой путь проходит разработчик в Яндексе, читайте в интервью с ведущим разработчиком команды мобильного SuperApp Александром Денисовым.
Для начинающих
Первый вопрос, на который нужно ответить: UIKit или SwiftUI? Я считаю, что, к сожалению, единственно верного ответа нет. Эти два подхода кардинально различаются: UIKit — императивный, SwiftUI — декларативный. Стать экспертом сразу в двух технологиях не получится. Если учить одновременно, в голове всё смешается. А выйти на приемлемый уровень разработки возможно, только приложив уйму усилий для каталогизации получаемых знаний.
UIKit старше, гораздо стабильнее и используется повсеместно. С ним вам, скорее всего, будет проще найти первую работу. Но если смотреть на вектор движения, то компания скорее избавляется от UIKit. Думаю, что в ближайшем будущем SwiftUI станет стандартом индустрии.
При этом не все технологические гиганты и даже маленькие компании готовы прямо сейчас переезжать на этот фреймворк. На переезд нужно много времени и усилий, инвестиций в обучение команды, а также нужно быть готовым разгребать уйму проблем из-за «сырости» технологии.
С другой стороны, SwiftUI современнее, проще в освоении. Я думаю, что в ближайшие несколько лет он займёт лидирующие позиции по использованию в качестве основного фреймворка. Он развивается уже более пяти лет и перешёл в стабильную версию.
Моя рекомендация — обзорно погрузиться в оба фреймворка сразу. Но после — выбрать наиболее понравившийся подход и сосредоточиться на его освоении, не пытаясь ухватить всё и сразу.
Я считаю, что здорово начинать погружение в язык с глубокого курса. Нужно выбрать тот, где информация чётко структурирована, есть отдельно уроки, визуализация и задания по разным темам. Например, вот отличные варианты:
-
SwiftUI Stanford CS193P — курс 2021 года с упором на SwiftUI. В 2023 выпускался с незначительно обновлённой информацией (добавились главы про Actor-ов), но из видеоряда — только запись экрана ноутбука. Так что смотреть приятнее версию 2021 года.
-
UIKit-курс. Выпускался в 2018 году, уже несколько устарел, но даёт неплохое представление об азах UIKit.
-
Школа мобильной разработки от Яндекса, 2023. Самая актуальная запись лекций. Также выходила в 2021 году.
В качестве как альтернативы, так и дополнения к курсам порекомендую книги:
-
The Swift Programming Language. Это библия Swift-разработчика. Бесплатная документация по языку от Apple. Книга разбита на несколько частей: сначала идёт краткий обзорный тур по возможностям Swift, затем — подробная документация и справочные материалы, описывающие грамматику языка.
-
Swiftbook — это перевод вышеупомянутой книги The Swift Programming Language.
Для опытных
С опытом отпадает необходимость постоянного сопровождения при дальнейшем погружении в профессию. Но возникает потребность в более глубоком изучении изолированных тем и технологий.
На этом этапе я бы рекомендовал нарабатывать опыт, набивая собственные шишки и рефлексируя над ошибками. А в качестве источников вдохновения, идей, архитектурных подходов, а также подробного разбора технологий и фреймворков рекомендую следующие ресурсы:
-
Kodeco (бывший raywanderlich.com) — множество материалов как для изучения частных областей iOS-разработки, так и для погружения в тонкости разработки под альтернативные платформы. Большая часть контента доступна по подписке (недешёвой), но есть и бесплатные публикации. Отдельно стоит обратить внимание на курс по современной многопоточности.
-
Objc.io — портал с внушительным количеством обширных материалов про тонкости разработки под iOS. Большинство материалов комплексные и включают в себя как книги, так и видеолекции и репозитории проектов к ним.
-
Advanced Swift — мастрид для любого профессионала.
-
Point-Free — регулярно публикуемые видео, исследующие разнообразные темы: функциональное программирование, UDF-архитектуру (авторы TCA) и множество других продвинутых практик. Часть контента доступна бесплатно. Для лучшего понимания рекомендуется смотреть выпуски в порядке выхода.
-
«Код Воробья» — есть как туториалы, так и ссылки на полезные библиотеки от автора и сообщества. Я рекомендую марафоны по UIKit/SwiftUI.
-
Kavsoft — канал с примерами использования SwiftUI: не абстрактных форм и кнопок, а сложных интерфейсов из реальных приложений. Чего стоит только анимированный header как в Spotify.
-
Medium — детальные туториалы чуть ли не по любой теме, связанной с разработкой под iOS.
-
Swift by Sundell — статьи, новости и подкасты с разбором базовых и продвинутых техник разработки.
Для разработчиков любого уровня
Чтобы не пропускать важные релизы, следить за новостями iOS-разработки (и не только), а также участвовать в жизни комьюнити разработчиков, я рекомендую вступить в чаты и подписаться на новостные рассылки:
-
iOS Good Reads — ежедневные статьи, видео и новости, связанные с iOS-разработкой.
-
iOS Dev Weekly — еженедельная рассылка полезностей по iOS, Xcode, Swift на английском.
-
AppTractor — дайджест статей по мобильной разработке: iOS, Android, Design и связанные темы.
-
«Подлодка» — один из крупнейших порталов, давно уже не ограниченный iOS-разработкой. Кроме новостных рассылок организуют онлайн-конференции, а также регулярно выпускают подкасты на околоайтишную тематику.
Бонус!
Кроме фокуса на технологиях и фреймворках от Apple не стоит забывать об общем развитии. Ресурсы из следующей подборки помогут развить навыки и получить знания, которые пригодятся вне зависимости от вашей специализации.
-
Паттерны. Наиболее актуальный и современный источник — refactoring.guru, но для любителей книг есть альтернативы, например Design Patterns: Elements of Reusable Object-Oriented Software.
-
Алгоритмы. Coderun — портал и комьюнити от Яндекса для подготовки к алгоритмической секции. А также HackerRank, LeetCode, Codewars или книга Cracking the Coding Interview.
-
Общее качество кода. Книга Роберта Мартина «Чистый код», но стоит рассматривать всю трилогию.
-
Git и его интерактивный учитель Learn Git Branching.
-
Многопоточность в игровой форме на The Deadlock Empire.