Стэнфордский курс CS193p — «Developing Application for iOS with SwiftUI» («Разработка приложений для iOS с помощью SwiftUI») объясняет как создавать приложения для iPhone и iPad, используя SwiftUI.
Пол Хегарти — преподаватель, ведущий курс CS193p в Стэнфорде с 2010 года.
Ниже вы найдете ссылки на видео и вспомогательные материалы курса CS193p (Разработка приложений для iOS с использованием SwiftUI) Стэнфордского университета (весна 2025 года). Этот курс предназначен для студентов Стэнфорда и знакомит с основами разработки iOS-приложений.
Курс проходил до выхода iOS 26 и Xcode 26, но код, написанный во время курса, в основном совместим с ними. Главное изменение в Xcode 26, конечно же, — это встроенная поддержка LLM, а в iOS 26 появилась функция Liquid Glass в пользовательском интерфейсе, поэтому, разумеется, в этих видео её нет.
К сожалению, мы не можем оказывать вам поддержку во время просмотра этих видео, но в интернете есть множество замечательных ресурсов, которые помогут вам в вашем стремлении научиться разрабатывать iOS-приложения, поэтому обязательно воспользуйтесь ими!
P.S. В русскоязычных иллюстрированных конспектах Лекций сделаны пометки на полях, касающиеся некоторых изменений в Xcode 26 и iOS 26.
Код, сопровождающий Лекции, находится на GitHub.
Лекция 1. Начало работы со SwiftUI.
Введение в курс. Основы SwiftUI и Xcode, особенно Views.
Пол Хегарти дает обзор курса, описывает необходимые предварительные условия (умение писать большой объем кода, опыт структурированного программирования) и объясняет структуру курса, которая использует «нарративный подход», где студенты создают одно большое приложение (CodeBreaker) в течение 6-7 недель, а не изучают материал по небольшим фрагментам кода.
Он проводит всесторонний обзор интерфейса Xcode и знакомит с основами SwiftUI View, используя аналогию с конструктором Lego, сравнивая базовые Views (Text, Image, Circle) с кубиками Lego, составные Views (ContentView) с собранными законченными фрагментами Lego, View-контейнеры (VStack) с инструкциями по сбору фрагментов Lego, а коллекции Views — с «мешками Lego» .
Лекция также охватывает основы синтаксиса Swift, включая структуры struct, переменные var и концепцию some View как вычисляемого свойства.
Смотреть в YouTube.
Русскоязычный иллюстрированный конспект Лекции 1.
Задание на чтение 1.
Лекция 2. Больше о SwiftUI. Создание приложения Code Breaker.
Продолжается объяснение разработки на SwiftUI с введением модификаторов View, второго основного столпа построения UI, наряду с View. Демонстрируется, как модификаторов View работают в виде цепочек функций, возвращающих измененные View, с такими примерами, как .font(), .foregroundStyle() и .padding(). Объясняется, как модификаторы View применяются по порядку и могут передаваться от контейнерных View к их дочерним элементам.
Затем лекция переходит к созданию приложения Code Breaker, созданию и размещению фишек pegs в игре, а затем к созданию маркеров с использованием Shapes с такими модификаторами, как .fill(), .stroke() и .opacity(). Рассматривается создание пользовательских структур, которые ведут себя как View, перемещение View в отдельные файлы, использование перечислений enum (для состояний совпадения, таких как .exact, .inexact, .nomatch).
Вводятся концепции функционального программирования, такие как count(where:) для обработки массивов. В лекции подчеркивается важность декомпозиции как решающего фактора для удобства сопровождения кода и производительности компилятора.
Смотреть в YouTube.
Русскоязычный иллюстрированный конспект Лекции 2.
Задание на программирование 1.
Лекция 3. Модель и UI; система ТИПов в Swift.
Введение в курс. Основы SwiftUI и Xcode, особенно Views.
Пол Хегарти дает обзор курса, описывает необходимые предварительные условия (умение писать большой объем кода, опыт структурированного программирования) и объясняет структуру курса, которая использует «нарративный подход», где студенты создают одно большое приложение (CodeBreaker) в течение 6-7 недель, а не изучают материал по небольшим фрагментам кода.
Он проводит всесторонний обзор интерфейса Xcode и знакомит с основами SwiftUI View, используя аналогию с конструктором Lego, сравнивая базовые Views (Text, Image, Circle) с кубиками Lego, составные Views (ContentView) с собранными законченными фрагментами Lego, View-контейнеры (VStack) с инструкциями по сбору фрагментов Lego, а коллекции Views — с «мешками Lego» .
Лекция также охватывает основы синтаксиса Swift, включая структуры struct, переменные var и концепцию some View как вычисляемого свойства.
Смотреть в YouTube.
Русскоязычный иллюстрированный конспект Лекции 3.
Задание на чтение 2.
Лекция 4. Построение Модели CodeBreaker.
Создание модель CodeBreaker и подключение к ней UI. Попутно используются @State, Optional и onTapGesture. CodeBreaker теперь доступен для игры!
Эта лекция посвящена реализации разделения Модели и UI в CodeBreaker.
Создается Модель игры CodeBreaker, включающая CodeBreaker (основная игровая логика), Code (с перечислением enum Kind для типов Code master/guess/attempt ) и Peg (реализованный просто как псевдоним ТИПа для Color).
Затем создается CodeBreakerView, который становится визуальным воплощением Модели. Ключевые концепции включают: правильную организацию файлов, использование @State для изменяемого состояния UI, пометку функций как mutating в структурах struct, которые могут быть изменяемыми, развертывание Optional с помощью if-let , операторы nil объединения и multi-touch ввод с помощью onTapGesture(). Демонстрируется, как SwiftUI автоматически обновляет UI при изменении Модели, реализуется Tap-цикл выбор Peg. Обсуждается важность разделения логики Модели от презентации UI.
К концу лекции CodeBreaker становится полностью работающей игрой.
Смотреть в YouTube.
Русскоязычный иллюстрированный конспект Лекции 4.
Задание на программирование 2.
Продолжение следует ….