Я делаю перевод на русский язык этого замечательного курса, который дал старт не одной карьере iOS разработчика. Это не просто перевод, а иллюстрированные конспекты (видео-фрагменты, скриншоты, перевод слайдов) Лекций, позволяющие вам видеть не только текущий видео момент лекции, а также широкий контекст, в котором этот момент находится, Он позволяет вам быстро перейти в нужное место Лекции, а не перематывать видео вперед или назад. Лучший режим работы с таким конспектом — это параллельный набор кода в Xcode вслед за профессором Полом Хегарти (Paul Hegarty). Поверьте, вы получите впечатляющий результат.
Курс Стэнфордского университета CS193P (Разработка приложений для iOS с помощью SwiftUI) версии Весна 2025 года уже полностью доступен online.
Все 16 лекций от профессора Пола Хегарти (Paul Hegarty) опубликованы в свободном доступе вместе с учебными материалами.
Пол Хэгарти (Paul Hegarty) — один из лучших лекторов в мире IT. Его стиль отличается невероятной глубиной и методичностью. Он не просто показывает, как «нажать на кнопку», а объясняет почему это работает именно так. Хэгарти мастерски декомпозирует сложные темы (многопоточность, управление памятью, жизненный цикл View) и делает их понятными.
Основные изменения в версии 2025 года
В отличие от предыдущий версии курса CS193P 2023 года, курс CS193P 2025 года больше сосредоточен на основах потока данных Data Flow в Views и функциональном программировании, а также получил значительные обновления в структуре и содержании:
Актуальность Swift и SwiftUI
Курс CS193P 2025 года полностью переработан под актуальные версии Swift и SwiftUI. В отличие от 2023 года, где часть материала уже устарела на момент выхода (например, ObservableObject был заменён @Observable ещё до публикации курса), версия 2025 года изначально построена на современных инструментах и подходах.
Лекции записаны до выхода iOS 26 и Xcode 26, но код остается полностью совместимым с современными инструментами разработки
Демо-приложение / Проект
Наиболее заметное отличие. В 2023 году весь курс строился вокруг Memorize (игра на совпадение карточек) и затем Emoji Art (холст с drag-and-drop).
В 2025 году они заменены единственным приложением Code Breaker ( игра в угадывание кода в стиле Wordle/Mastermind или «быки-коровы» в русском варианте), которое разрабатывается с нуля на протяжении всех 16 лекций.
Архитектурная парадигма
В 2023 году курс явно и подробно обучал MVVM (Model-View-ViewModel), посвящая этому целые лекции.
В 2025 году акцент смещается на более простое разделение Model + UI (ближе к MVI), что отражает то, как современный SwiftUI с @Observable делает отдельный слой ViewModel менее необходимым.
Лекции теперь уделяют больше внимания созданию интерфейсов, работающих одновременно на iPhone, iPad, и Mac, включая использование NavigationSplitView и работу с Size Classes.
Механизм реактивного UI
В 2023 году курс использовал ObservableObject / @ObservedObject ;@Published (старая система на основе Combine).
В 2025 году это заменено новым макросом Apple @Observable, введённым в iOS 17 / Xcode 15, который чище и требует меньше шаблонного кода. Также рассматриваются продвинутые шаблоны использование @Bindable для обмена данными-источниками между Views.
Swift Concurrency / Async
В 2025 году курс охватывает те же основные принципы (MainActor, фоновые очереди, async/await), но интегрирует их напрямую с механизмом сохранения данных SwiftData (@Model, сложные предикаты, сохранение в базу данных). В нем также отражены инструменты Swift 6 concurrency.
Анимация
Рассматриваются почти те же основные идеи — неявная и явная анимация (с помощью `withAnimation`),анимация View модификаторов/Shapes, переходы transitions, .matchedGeometryEffect() и TimelineView для изменений во времени.
Но в курсе 2025 года рассматриваются .animation(nil) и .transaction() для выборочного подавления анимации. Обсуждается разница между подавлением анимации на основе изменений состояния и условий. В целом анимация изучается в контексте современной системы потока данных @Observable (изменения состояния запускают анимацию более чисто и эффективно).
Навигация
В обоих курсах используется шаблон NavigationStack / NavigationLink( value:) / NavigationDestination, появившийся после iOS 16 (заменяющий старый стиль NavigationView + destination-closure из курсов до 2022 года).
В период с 2023 по 2025 год не произошло существенной переработки API — основные принципы стабилизировались.
Однако в курсе 2025 году демонстрируются более идиоматические / эффективные шаблоны NavigationLink ( например, прямая передача данных по сравнению со старыми подходами) и более органично интегрированы со списками List и моделью данных приложения.
SwiftData
Одно из ключевых добавлений 2025 года — изучение SwiftData ( @@Model, @Relationship, ModelContext, предикаты), фреймворка Apple для работы с базами данных, представленного в iOS 17. Он пришёл на смену CoreData и предлагает значительно более простой и декларативный способ сохранения данных, хорошо интегрированный с @Observable и SwiftUI. В курсе 2023 года эта тема отсутствовала полностью.
Качество видео
Практическое отличие: лекции 2023 года записаны как захват экрана со звуком (без полноценного видео). Лекции 2025 года — это полноценные видеозаписи, что значительно облегчает восприятие.
Итог: Версия 2025 года — это более современный и streamlined курс, построенный на актуальных идиомах Swift/SwiftUI (@Observable, более чистый поток данных Data Flow), тогда как версия 2023 года — более глубокое погружение с богатым содержанием по графике/анимации и явным обучением архитектуре MVVM.
Таким образом, курс CS193P 2025 года можно считать не просто обновлённой версией, а фактически новым курсом, отражающим современное состояние экосистемы Apple — от архитектуры и реактивности до постоянного хранения данных с помощью SwiftData.
Где найти материалы
- Официальный сайт курса: на cs193p.stanford.edu размещены ссылки на видео, задания (Homework) и демонстрационный код.
- Youtube: Полный плейлист из 16 лекций доступен на канале Stanford Online.
- Русский иллюстрированный перевод
- GitHub: множество ссылок, в том числе мой репозиторий с кодами начальных Лекций, которые профессор не приводит.
Требования к подготовке
Курс по-прежнему считается продвинутым. Официальное требование Стэнфорда включают уверенные знания в программировании (аналог курсов CS106A/B и CS107). По мнению экспертов с Reddit и LinkedIn, новичкам может быть сложно из-за высокой концентрации сложных концепций, таких как обертка свойства (property wrappers), непрозрачные ТИПы ( opaque types) и concurrency.