Логотип Academy Market
Каталог курсов
0
Логотип Academy Market

Стэнфордский курс CS 193P по разработке приложений для iOS теперь доступен в школе CODDY! Данный курс рассчитан на кодеров с опытом, которые владеют хотя бы одним языком программирования (Java, C#, Python и др). Курс адаптирован экспертами CODDY для подростков и подойдёт для детей 14-16 лет.

В ходе обучения вы познакомитесь с программированием и разработкой на языке Swift, обучитесь конструировать архитектуру приложения, пользоваться жестами и мультитачем, узнаете, как работать с системами хранения данных. В качестве практической части курса вы сами напишете игры "Найди пару" и "Сет".

Русский
4,3
Наверх

Чему вы научитесь

Хранить данные в iCloud
Программировать на Swift
Использовать гироскоп и камеру
Использовать элементы интерфейса iOS
Создавать мобильные приложения и игры
Разбираться в терминологии среды разработки iOS

Программа курса

В рамках курса вы подробно разберёте все возможности программирования на языке Swift на iOS, погрузитесь в практику написания кода и сможете разработать своё приложение или игру.

17
Модулей
68
Онлайн-уроков

Познакомитесь с основами языка Swift и узнаете, как устроена разработка приложений под iOS. Научитесь создавать переменные, понимать разницу между изменяемыми и постоянными значениями.

Узнаете, как различать хранимые и вычисляемые переменные и в каких ситуациях они применяются. Научитесь создавать собственные свойства с геттерами и сеттерами — специальными методами для чтения и изменения значений.

Познакомитесь с современным способом создания интерфейсов с помощью SwiftUI. Научитесь использовать объект Text для отображения текста в приложении.

Научитесь работать с объектом TextField, который позволяет пользователю вводить текст. Разберёте, как связать TextField с переменными в коде и как обрабатывать введённые данные.

Разберёте, как работает TextField на более глубоком уровне. Узнаете, как использовать модификаторы SwiftUI для тонкой настройки поведения, внешнего вида и валидации ввода.

Научитесь создавать интерактивные элементы интерфейса с помощью объекта Button. Разберёте, как задавать действие, которое выполняется при нажатии кнопки, и как изменять её внешний вид.

Познакомитесь с базовыми фигурами в SwiftUI: кругами, прямоугольниками, капсулами и другими. Научитесь комбинировать их, чтобы строить оригинальные элементы интерфейса.

Научитесь добавлять изображения в свои приложения с помощью объекта Image. Разберёте, как подключать изображения, задавать им размеры, изменять масштаб и форму.

Научитесь создавать плавные цветовые переходы и применять градиенты для оформления интерфейса. Разберёте, какие бывают типы градиентов — линейные, радиальные и угловые — и как они могут менять внешний вид элементов.

Примените на практике всё, что узнали, и создадите собственное приложение с нуля. Научитесь проектировать структуру интерфейса, подбирать стили, цвета и элементы так, чтобы приложение выглядело современно и удобно.

Научитесь разбивать большие View на более мелкие компоненты, использовать переиспользуемые элементы и избавляться от лишнего. Разберёте, почему читаемый код — это не только красиво, но и важно для настоящей командной разработки.

Разберёте, как правильно оформить экран, чтобы он был удобным для пользователя и соответствовал реальным приложениям. Узнаете, как связать экран авторизации с другими частями приложения и что можно добавить для усиления защиты.

Разберёте, как делать переходы между экранами в SwiftUI. Научитесь использовать навигационные ссылки и стек (NavigationStack) для построения логичных путей внутри приложения. Узнаете, как передавать данные между экранами и возвращать пользователя назад, сохраняя информацию и состояние интерфейса.

Научитесь добавлять нижнюю панель вкладок (TabView) и верхнюю панель инструментов (Toolbar). Разберёте, как правильно организовать интерфейс с несколькими основными разделами.

Познакомитесь с понятием класса в языке Swift. Узнаете, чем классы отличаются от структур, и почему они важны для разработки сложных приложений. Научитесь создавать собственные классы, добавлять в них свойства и методы, а также использовать их для организации данных и логики приложения.

Углубите свои знания в объектно-ориентированное программирование (ООП). Разберёте такие понятия, как наследование, переопределение методов, инициализаторы и делегаты.

Узнаете, что такое структуры и как они используются в Swift. Научитесь создавать структуры с переменными и функциями, а также разберёте, как структуры помогают писать простой и понятный код.

Разберёте, как правильно разделять логику, интерфейс и данные внутри приложения. Научитесь выстраивать структуру проекта так, чтобы код был читаемым, гибким и лёгким для поддержки и масштабирования. Поймёте, почему MVVM важен при создании серьёзных приложений.

Примените паттерн MVVM на практике. Научитесь преобразовывать уже созданное приложение, разделяя его на модель, представление и модель представления. Разберёте, как вынести бизнес-логику из интерфейса и сделать код более чистым. Узнаете, как улучшить архитектуру приложения с учётом масштабируемости и удобства командной работы

Узнаете, что такое массивы и как они позволяют хранить сразу несколько значений. Научитесь создавать массивы, добавлять и удалять элементы, находить нужные значения и перебирать массивы с помощью циклов. Разберёте, почему массивы — один из самых часто используемых типов в Swift и как с их помощью можно управлять данными в приложении.

Научитесь использовать различные виды циклов для повторения действий. Разберёте, как работает for и в каких случаях он удобнее, чем while. Узнаете, как использовать forEach с массивами и другими коллекциями. Освоите приёмы написания эффективных и читаемых циклов, которые помогут автоматизировать работу с данными.

Разберёте, что такое перечисления (enum) и в чём их уникальные возможности в Swift. Узнаете, как создавать перечисления с ассоциированными значениями, как использовать конструкции switch, и как применять enum для управления состояниями приложения. Научитесь писать чистый и выразительный код, используя силу перечислений.

Закрепите полученные знания, улучшив существующее приложение. Научитесь анализировать собственный код, находить слабые места и заменять их более эффективными решениями.

Научитесь создавать анимации для интерфейса, чтобы приложение выглядело живо и привлекательно. Разберёте, как анимировать появление элементов, изменение состояний и переходы между экранами.

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

Узнаете, как добавлять взаимодействие через прикосновения и жесты. Научитесь реализовывать обработку нажатий, свайпов и перетаскиваний. Разберёте, как жесты делают приложение более интерактивным и приближенным к привычному пользовательскому опыту на iPhone и iPad.

Познакомитесь с мощными компонентами SwiftUI для отображения больших объемов информации в виде сеток. Узнаете, как работают LazyVGrid и LazyHGrid, и в чём их преимущество — «ленивая» подгрузка элементов.

Начнёте разработку собственной игры — узнаете, как проектировать интерфейс поля, размещать элементы и задавать игровые состояния. Разберёте логику игры, взаимодействие между игроками и начнёте подготовку к добавлению искусственного интеллекта.

Разберёте одну из самых важных концепций в Swift — опциональные типы. Узнаете, почему переменная может содержать либо значение, либо nil, и как правильно с этим работать. Научитесь безопасно извлекать значения, использовать if let, guard let, и писать надёжный код, который не будет «падать» из-за пустых значений.

Продолжите работу над игрой и добавите искусственный интеллект. Узнаете, как анализировать игровое поле, определять выигрышные комбинации и прописывать стратегию для бота. Научитесь применять алгоритмы и условия для создания «умного» соперника.

Научитесь использовать уведомления (alerts, banners, pop-ups) для общения приложения с пользователем. Разберёте, как показывать предупреждения, ошибки, подтверждения и другой важный интерфейсный отклик. Узнаете, как уведомления улучшают пользовательский опыт и позволяют делать интерфейс понятным и отзывчивым.

Познакомитесь с понятием рекурсии — когда функция вызывает саму себя. Узнаете, как использовать рекурсивные функции для решения сложных задач простым способом. Разберёте примеры, такие как вычисление факториала и обход структур данных. Научитесь писать рекурсивный код и понимать, когда рекурсия удобнее обычных циклов.

Узнаете, как компьютеры принимают решения в играх с двумя игроками. Познакомитесь с алгоритмом мини-макс — классическим методом в теории игр, который позволяет «предсказывать» ходы соперника.

Продолжите улучшать свою игру, реализуя алгоритм мини-макс. Научитесь описывать возможные сценарии игры и выбирать лучший ход. Разберёте, как сделать так, чтобы бот действовал логично и не проигрывал.

Завершите проект, добавив последние улучшения. Научитесь сохранять историю побед и поражений, обрабатывать ничьи и перезапускать игру. Разберёте, как сделать приложение готовым для публикации и поделиться им с друзьями.

Научитесь размещать кнопки, текстовые поля и изображения с помощью интерфейсного редактора. Разберёте, как связывать элементы интерфейса с кодом, чтобы управлять ими при запуске приложения.

Узнаете, что такое протоколы и зачем они нужны в языке Swift. Научитесь описывать требования к типам, а затем реализовывать эти требования в классах, структурах и перечислениях. Разберёте, как протоколы помогают строить гибкий и расширяемый код. Поймёте, как они связаны с интерфейсами в других языках программирования.

Научитесь добавлять новые возможности к уже существующим типам с помощью расширений (extensions). Узнаете, как дописывать методы и свойства к стандартным структурам без изменения их оригинального кода. Разберёте, как расширения делают код чище, удобнее и переиспользуемым.

Научитесь переключаться между экранами в приложениях, созданных с помощью UIKit. Разберёте, как правильно организовывать переходы и передавать данные от одного экрана к другому.

Узнаете, как программно создавать элементы интерфейса и управлять ими без использования Storyboard. Разберёте, что такое AutoLayout и как он помогает размещать элементы на экране для разных размеров устройств.

Научитесь полностью создавать интерфейс в коде. Разберёте, как вручную добавлять кнопки, поля ввода, изображения и размещать их с помощью AutoLayout. Узнаете, как построить гибкий интерфейс, который не зависит от визуального редактора, и начнёте мыслить как разработчик, свободно комбинирующий оба подхода.

Познакомитесь с одним из самых мощных инструментов UIKit — таблицей TableView. Узнаете, как использовать её для отображения списков, меню и других повторяющихся данных. Научитесь настраивать базовую таблицу, задавать количество строк и выводить текстовые элементы.

Научитесь работать с пользовательскими ячейками. Разберёте, как добавлять изображения, кнопки и дополнительные элементы в каждую строку таблицы. Узнаете, как использовать UITableViewCell и сделать интерфейс таблицы более информативным и современным.

Углубите навыки, реализуя взаимодействие с таблицей. Научитесь реагировать на нажатие строки, удалять и перемещать элементы. Разберёте, как сохранять данные таблицы и обновлять их по мере необходимости. Освоите создание полноценных динамических списков, которые можно использовать в настоящих приложениях.

Узнаете, как оформить стартовый экран для приложения в двух разных фреймворках — UIKit и SwiftUI. Научитесь добавлять заставку (splash screen), логотип игры и плавную анимацию загрузки.

Познакомитесь с основами работы с двумерными массивами, или матрицами. Научитесь представлять игровое поле как таблицу значений и работать с координатами. Разберёте, как создать матрицу, обращаться к элементам по строкам и столбцам, и использовать её в логике игры или других проектах.

Продолжите освоение матриц. Научитесь изменять содержимое, проверять соседние элементы, находить пустые или занятые клетки. Разберёте, как использовать матрицы в Тетрисе для управления фигурами и игровым полем.

Узнаете, как сделать свой собственный доступ к данным через сабскрипты. Научитесь писать код, который позволяет обращаться к структурам и классам как к массивам — с помощью квадратных скобок.

Узнаете, где словари особенно полезны — например, для хранения настроек пользователя, отображения данных или управления состояниями игры. Научитесь эффективно использовать словари в реальных проектах.

Познакомитесь с кортежами — типом, который позволяет объединить несколько значений в одну переменную. Узнаете, как возвращать несколько значений из функций и удобно хранить данные, не создавая лишних структур. Научитесь использовать кортежи для обработки координат, парных значений и других задач в приложениях и играх.

Начнёте разрабатывать собственную версию игры «Тетрис» на SwiftUI. Узнаете, как построить игровое поле и отобразить фигуры. Научитесь управлять отображением блоков, создавать начальные фигуры и реализовывать базовые правила игры. Сосредоточитесь на визуальной части и архитектуре проекта.

Узнаете, как создавать таймер в SwiftUI — один из важнейших инструментов для игр и анимаций. Научитесь запускать действия по времени, обновлять интерфейс с заданной частотой и использовать таймер для управления движением объектов в игре. Разберёте, как сделать игровой цикл в Тетрисе и задать скорость падения фигур.

Продолжите разработку Тетриса, добавляя движение и управление фигурами. Научитесь обрабатывать нажатия кнопок, проверять столкновения с другими блоками и границами поля. Разберёте, как реализовать вращение фигур, а также удаление заполненных линий.

Познакомитесь с клоужерами — функциями без имени, которые можно передавать как значения. Узнаете, зачем нужны клоужеры и где они часто используются. Научитесь писать простые клоужеры, использовать их для сортировок, фильтрации и передачи поведения в другие функции.

Углубите понимание клоужеров. Узнаете, что такое захват значений и как клоужеры «запоминают» переменные. Разберёте синтаксис сокращённых форм и работу с параметрами. Научитесь применять клоужеры в интерфейсе, анимациях и таймерах. Подготовитесь к работе с функциями высшего порядка.

Узнаете, что такое функции высшего порядка и почему они делают код гибким и лаконичным. Научитесь использовать map, filter, reduce, sorted, compactMap и другие полезные методы. Разберёте, как применять их к массивам и словарям, обрабатывая данные в один шаг. Освоите современный стиль программирования на Swift, который используется в настоящих проектах.

Продолжите работу с функциями высшего порядка, углубляя знания об их применении в реальных задачах. Научитесь комбинировать map, filter и reduce для сложной обработки данных.

Узнаете, как добавлять жесты в интерфейс и реагировать на движение пальца по экрану. Научитесь использовать DragGesture, чтобы реализовать перетаскивание объектов, в том числе игровых элементов.

Продолжите развитие игры, добавив управление фигурами с помощью жестов. Научитесь связывать DragGesture с игровой логикой. Разберёте, как адаптировать интерфейс под касания и создать отзывчивый геймплей. Начнёте добавлять элементы анимации, чтобы перемещения выглядели плавно и современно.

Углубите игровую механику, реализуя проверку заполненных линий и их удаление. Научитесь перерисовывать поле при изменении состояния игры, управлять изменениями с помощью анимаций. Разберёте, как работать с состоянием (@State, @Binding) для синхронизации UI и логики игры.

Узнаете, что такое многопоточность и зачем она нужна в мобильной разработке. Познакомитесь с фреймворком Grand Central Dispatch (GCD) — инструментом Apple для управления потоками.

Продолжите освоение GCD. Научитесь переключаться между фоновыми потоками и основным потоком UI, используя DispatchQueue. Разберёте, как синхронизировать данные между потоками, избегать ошибок и предотвращать конфликты.

Познакомитесь с новым подходом к асинхронности в Swift — с использованием ключевых слов async и await. Узнаете, как упрощается работа с асинхронным кодом в последних версиях языка. Научитесь писать читаемые и безопасные функции, которые не блокируют главный поток и эффективно используют ресурсы устройства.

Разберёте более сложные примеры использования async/await. Научитесь обрабатывать параллельные задачи, использовать Task, TaskGroup и actor. Узнаете, как управлять одновременными процессами в играх и приложениях, сохраняя высокую производительность и стабильность.

Добавите улучшенную анимацию к фигурам, создавая плавные переходы и визуальные эффекты. Научитесь работать с withAnimation, transition, offset и другими инструментами анимации в SwiftUI. Разберёте, как визуально подчеркнуть действия игрока и сделать игру более увлекательной.

Научитесь управлять скоростью игры: добавите прогрессивное ускорение, обработку паузы и окончание игры. Разберёте, как отслеживать результат игрока и выводить счёт. Начнёте работу над сохранением данных и подготовки игры к публикации. Продвинетесь к завершению полноценного игрового приложения.

Узнаете, как добавить звук в приложение с помощью AVKit. Научитесь воспроизводить звуковые эффекты, музыку и уведомления. Разберёте, как настроить звуки на действия игрока: падение фигур, очистку линий, проигрыш. Научитесь управлять громкостью, переключением треков и добавите в игру настоящую атмосферу.

Завершите разработку игры, собрав все части воедино. Научитесь оптимизировать приложение, тестировать его на разных устройствах и готовить к публикации. Добавите финальный экран с результатами, меню перезапуска и кнопку «Играть снова».

Как проходит обучение

Иллюстрация к пункту обучения

Изучение темы

Просмотр обучающих видеороликов

Иллюстрация к пункту обучения

Выполнение практических заданий

Делаете все тогда, когда вам это удобно и в подходящем вам темпе

Иллюстрация к пункту обучения

Работа с куратором

Объяснение возникших вопросов, закрепление пройденного материала и исправление ошибок

Иллюстрация к пункту обучения

Создание итогового проекта

Данный проект, показывающий ваши навыки, будет прекрасным дополнением к вашему портфолио

Спецификация

Отзывы о Coddy

Coddy
5.0051
Интересно и польза чувствуется
Достоинства

Записали сына на курсы Coddy по Питону. Ребенок хорошо освоил язык и получил удовольствие от уроков, заинтересовался программированием! Все благодаря профессионализму Никиты Шаповалова. Он интересно вел уроки и умел найти подход к ученикам. Сейчас взяли другое обучение, уже по Java Script и в offline формате. Сын сам говорит, что чувствует пользу. 

Недостатки

Не нашли. 

Coddy
5.0051
Индивидуальные курсы по рисованию
Достоинства

Записали дочку на индивидуальные курсы рисования. Ребёнку всё очень понравилось, сам их ждёт и предвкушает. Она стала намного лучше рисовать, хотя прозанималась не так много времени. Преподаватель Наталья умеет найти подход к детям. Обязательно будем продолжать посещать) 

Недостатки

Нет. 

Coddy
5.0051
В целом все прошло очень хорошо
Достоинства

В общем, всё прошло замечательно. Особенно хотел бы выделить преподавателя, который смог увлечь сына и добиться впечатляющих результатов всего за пять дней. Кроме того, Павел предоставил обратную связь родителям по окончании курса, что является очень ценным подарком.

Coddy
5.0051
О загородном лагере
Достоинства

Посещали загородный лагерь, организованный Coddy. Ребёнок остался очень доволен! Целый вечер слушали его рассказы. Делился впечатлениями, говорил про проект и показывал фильм снятый с другими ребятами. Поездка хорошо составлена, поверьте!

Недостатки

Не было. 

Coddy
5.0051
Сын доволен, ура
Достоинства

Мой ребенок сходил на пробный урок, у него сразу появился интерес. На занятия ходит не из-под палки, а по собственной инициативе, ему все нравится. Преподаватели хорошие: смогли заинтересовать и объясняют все понятно.

Будем продолжать заниматься.

Coddy
5.0051
Вожу сына
Достоинства

В Кодди я вожу сына на уроки программирования, ему очень нравится. Да даже я, здоровый лоб, в полном восторге! И удобно что есть у нас филиалы, не надо ехать даолеко в центр Момквы.

Coddy
5.0051
Курс по Unity
Достоинства

Занимаюсь в школе Coddy на курсах по Unity. Тут увлекательно, можно получить много новых знаний. Очень классно просто ТОП

Приходите сюда учится программированию

Coddy
5.0051
Coddy в Раменском
Достоинства

Coddy – это отличная школа, где. преподают самые классные учителя! У меня в Раменском вел Александр и это самый терпеливый человек на свете! Он учил нас делать игры

Coddy
5.0051
Мнение не изменилось
Достоинства

Не впервый раз здесь обучаемся и впечатления всё те же самые. Отличное образование, прекрасное обучение. Отдельное спасибо Дмитрию!

Недостатки

Ни одного минуса. 

Coddy
5.0051
Ребёнок сам хочет заниматься
Достоинства

Попробовали позаниматься в этой школе. Всё хорошо подошло. Формат отличный и занятия интересные. Ребёнок сам хочет продолжать. 

Недостатки

Нету

Coddy
5.0051
Спасибо людям
Достоинства

Нам попался замечательный преподаватель. Записали на занятия дочь и она от них просто в восторге. Много интересного рассказывает. 

Недостатки

Нету. 

Coddy
5.0051
Дочка оценила
Достоинства

Записали дочь, Машу, в эту школу Coddy. Всё очень нравится, преподаватели, занятие, подход к ребёнку. Будем продолжать заниматься.

Недостатки

Не нашли. 

Coddy
5.0051
все супер
Достоинства

мне нравится заниматься в этой школе! преподаватели добрые, всегда помогают, если что-то не получается. Много нового я узнаю на уроках, советую попробовать!

Coddy
5.0051
Супер платформа
Достоинства

Цены удачные, преподаватели рассказывают интересно и сами по себе явно талантливые, платформа супер, задания классные. 

Недостатки

не найдено

Coddy
5.0051
Ну мне всё нравиться
Достоинства

Мне все нравится, все получается замечательно! Даже удобнее, чем обычно — никуда ездить не нужно.

Недостатки

Нету минусов. Всё хорошо.

Coddy
5.0051
Хорошая детская школа
Достоинства

Курсы в детской школе оказались полезными и интересными для ребенка. У филиалов удобное расположение, мы ходим в ближайший к дому. 

Coddy
5.0051
Отличная школа программирования
Достоинства

Прекрасная школа программирования для детей. Отличные педагоги, молодые но опытные, вызывают доверие у детей и родителей.

Coddy
5.0051
Сыну очень нравиться
Достоинства

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

Coddy
5.0051
Понравилось все
Достоинства

Мне понравилось абсолютно все! Особенно создание мультиков! Мы остались в восторге и планируем продолжать обучение здесь.

Coddy
5.0051
Класс
Достоинства

Супер! Учитель Саша лучший учитель в группе! Доказывать не буду, я знаю что говорю и не сомневаюсь!!

Недостатки

Минусов нет!!

Ещё 380 отзывов

Часто задаваемые вопросы

Обучение организовано так, что вы можете спокойно совмещать его с работой, учебой и личной жизнью. Именно вы решаете, когда работать с материалами курса - вы занимаетесь тогда, когда удобно вам. Все уроки курса будут всегда в вашем доступе, даже после окончания курса, поэтому вы в любой момент сможете повторить пройденный материал.

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

Да, вы всегда сможете задать вопрос преподавателю в личном кабинете. Также вы будете получать от него обратную связь после выполнения домашних заданий.

Проверять ваши домашние задания будут эксперты, а также вас будет сопровождать куратор, который поможет справиться с трудностями. Вы получите профессиональные советы, рекомендации и лайфхаки.

Вы сможете смотреть вебинары как в онлайн-режиме, так и в записи, после чего получите домашние задания и обратную связь в чате.

Другие популярные курсы

Картинка курса

Бизнес-аналитика

НАДПО
Аналитика
4,9
55 000 ₽
71 500 ₽
Картинка курса

Project Manager в IT

Skillfactory
Бизнес и управление
4,4
159 300 ₽
264 600 ₽
Картинка курса

Стилист-имиджмейкер

Talentsy
Другие профессии
4,7
105 000 ₽
175 000 ₽
Картинка курса

Эффективный руководитель

Skillbox
Бизнес и управление
4
120 558 ₽
241 116 ₽
Изображение курса
Coddy
Для детей и подростков
17 Месяцев
Стэнфордский курс Swift: разработка мобильных приложений для iOS для детей
6 800 ₽
Скидка Ещё -30% по промокоду
|
Показать код