Полезные книги, курсы и сайты для iOS-разработчиков

Подборка для тех, кто начинает осваивать мобильную разработку

https://avatars.mds.yandex.net/get-media-platform/1599454/637078b6-6cb5-4475-8eed-ef0feaa4493a/1240x1240

Разработка для iOS — перспективное направление: четверть мобильных устройств в мире используют именно эту операционную систему. При этом на языке Swift пишут всего лишь 5% программистов, и, как следствие, они очень востребованы в IT-компаниях. Александр Денисов, ведущий разработчик в команде мобильного SuperApp, составил подборку обучающих материалов, которая пригодится новичкам в iOS-разработке.

Сайты

  • Документация Apple. Наверное, самый подробный гайд по разработке для iOS. Apple подробно описывает особенности языка Swift, публикует примеры кода и другие полезные материалы.
  • Блог Swift Programming на Medium. Статьи про iOS-разработку, ориентированные на практику: советы, подборки инструментов и разборы неочевидных особенностей фреймворков.
  • Статьи по iOS и Swift на raywenderlich.com. Библиотека туториалов по iOS-разработке. Постоянно пополняется и содержит информацию обо всех нововведениях от Apple — это особенно актуально после WWDC, конференции, на которой анонсируют последние изменения в продуктах. На raywenderlich удобно искать нужные материалы: их можно отфильтровать не только по теме, но и по сложности.
  • Блог мобильных Яндекс.Карт на Medium. Статьи, в которых разработчики Яндекса делятся интересными находками и идеями, которые возникают во время работы. Блог не обновляется уже год, однако советы из него всё ещё актуальны.
  • Рефакторинг.Гуру. Ресурс, посвящённый архитектуре приложений, паттернам программирования и различным практикам рефакторинга — улучшения кода без написания новой функциональности.
  •  HackerRank и LeetCode. Cайты, на которых можно попрактиковаться в решении алгоритмических задач. Пригодятся перед собеседованием на iOS-разработчика.

Книги

  • The Swift Programming Language. «Библия» для Swift-разработчика. Бесплатная документация по языку от Apple, которую актуализируют для каждой новой версии (включая беты). Книга разбита на несколько частей: сначала идёт краткий обзорный тур по возможностям Swift, затем — подробная документация и справочные материалы, описывающие грамматику языка. 
  •  SwiftBook. Перевод книги "The Swift Programming Language" на русский. Лучше читать в оригинале, но если вам это тяжело даётся, то можно переключиться на SwiftBook.
  • "Оптимизация производительности для iOS" — Во Ханг. Книга, посвящённая производительности приложений. Автор описывает методологию исследования скорости работы приложения, необходимые инструменты, алгоритмы и их применение на практике. Несмотря на то, что книга написана в 2013 году, она остаётся актуальной и на сегодняшний день.
  • App Development with Swift. Красочный и наглядный учебник по Swift-разработке от Apple. Задания построены таким образом, чтобы шаг за шагом выстраивать фундамент, необходимый для разработки приложений и дальнейшего самостоятельного обучения. Книга оптимизирована для iBooks.
  • Коллекция книг на raywenderlich.com. Материалы для изучения частных областей iOS-разработки. Стоит обратить внимание на книгу «Concurrency by Tutorials»: в ней рассказывается о многопоточности — принципе построения программ, который позволяет разным блокам кода выполняться одновременно, при этом не мешая друг другу.
  • "xUnit Test Patterns: Refactoring Test Code" — Месарош Джерард, "The Art of Unit Testing With Examples in .NET" — Рой Ошеров. Эти книги посвящены разным аспектам автоматизированного тестирования: от философии и основных принципов до зарекомендовавших себя практик. Инструкции написаны для фреймфорка .NET (то есть для Windows), однако их можно использовать и в XCTest (iOS).
  • "App Architecture" — objc.io. Книга про архитектуру приложений от objc.io — портала, посвящённого уже продвинутой разработке на iOS. “App Architecture” поможет научиться разрабатывать сложные структуры сервисов: так, чтобы приложения были отказоустойчивыми и быстро загружались.

Курсы

  • Coursera: iOS App Development with Swift Specialization. Специализация, которая даёт базу для самостоятельной разработки iOS-приложений. В конце её прохождения вы уже сможете создать свой небольшой сервис.
  • Udacity: Intro to iOS App Development with Swift. Курс ориентирован на новичков в программировании — о чём красноречиво говорит подпись "Your First Programming Language". Опытным разработчикам, которые уже писали на других языках, а теперь знакомятся с iOS, лучше поискать другой вариант.
  • Stepic: курс Академии Яндекса по iOS-разработке. Базовый курс по iOS-разработке. Программа состоит из двух частей: сначала авторы разбирают язык программирования Swift, а потом говорят про его инструменты и слои, постепенно усложняя и углубляя темы. В каждом уроке — лекции и небольшие задачи, которые помогают закрепить материал. 
  • Курсы Стэнфорда: Developing Apps for iOS; iOS 13 и SwiftUI; iOS 11 и Swift 4. Лекции, посвящённые iOS-разработке в целом — и SwiftUI в частности. Подойдут как для начинающих, так и для того, чтобы структурировать свои знания по iOS-разработке.
  • App Architecture — objc.io. Видеоматериалы к книге про архитектуру от objc.io, о которой мы писали в прошлом разделе.

подборка