Skillbox
EDPRO
Нетология
Eduson Academy
Московский институт психологии
Skypro
НАДПО
НИИДПО
Skillfactory
GeekBrains
Talentsy
Bang Bang Education
ProductStar
Логомашина
Contented
Бруноям
Fashion Factory School
Хекслет
НЦРДО
SF Education
Skillbox Английский (Kespa)
100балльный репетитор
Годограф
Otus
Фоксфорд
Компьютерная Академия TOP
XYZ School
MAED
ИППСС
Международная школа профессий
Эколь
Pentaschool
Яндекс Практикум
Moscow Digital School
НСПК
City Business School
Skyeng
Skysmart
Вебиум
KARPOV.COURSES
НИПКЭФ
Level One
Контур.Школа
Синергия Академия
Инглекс
InvestFuture
Hello World
Psycholesson
Coddy
99 баллов
#Sekta
Викиум
ЭКОДПО
Bonnie & Slide
Digital Skills Academy
Interra
Kata Academy
Слёрм
PIXEL
Merion Academy
NeuroBoost
Anecole
Verona School
ЕГЭLAND
Profieng
НАМО им. Н.А. Бородина
Институт бизнес-аналитики Алексея Колоколова
КОРОЛЬ ГОВОРИТ!
PROschool online
Innova IT Academy
EDPRO
Skillbox
Нетология
Eduson Academy
Московский институт психологии
Skypro
НАДПО
НИИДПО
Skillfactory
GeekBrains
Talentsy
Bang Bang Education
ProductStar
Логомашина
Psychodemia
Contented
Бруноям
Fashion Factory School
Хекслет
НЦРДО
SF Education
Skillbox Английский (Kespa)
100балльный репетитор
Годограф
Otus
Фоксфорд
Компьютерная Академия TOP
XYZ School
MAED
ИППСС
Международная школа профессий
Эколь
Pentaschool
Яндекс Практикум
Moscow Digital School
НСПК
City Business School
Skyeng
Skysmart
Вебиум
KARPOV.COURSES
Сотка
Level One
Контур.Школа
TutorOnline
Тетрика
Инглекс
Coddy
99 баллов
#Sekta
Викиум
Bonnie & Slide
Interra
Слёрм
Моя Альфа школа
Verona School
ЕГЭLAND
EasyCode
Институт бизнес-аналитики Алексея Колоколова
КОРОЛЬ ГОВОРИТ!
PROschool online
Innova IT Academy
Яндекс Практикум Английский
Стэнфордский курс CS 193P по разработке приложений для iOS теперь доступен в школе CODDY! Данный курс рассчитан на кодеров с опытом, которые владеют хотя бы одним языком программирования (Java, C#, Python и др). Курс адаптирован экспертами CODDY для подростков и подойдёт для детей 14-16 лет.
В ходе обучения вы познакомитесь с программированием и разработкой на языке Swift, обучитесь конструировать архитектуру приложения, пользоваться жестами и мультитачем, узнаете, как работать с системами хранения данных. В качестве практической части курса вы сами напишете игры "Найди пару" и "Сет".
В рамках курса вы подробно разберёте все возможности программирования на языке Swift на iOS, погрузитесь в практику написания кода и сможете разработать своё приложение или игру.
Познакомитесь с основами языка 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. Научитесь воспроизводить звуковые эффекты, музыку и уведомления. Разберёте, как настроить звуки на действия игрока: падение фигур, очистку линий, проигрыш. Научитесь управлять громкостью, переключением треков и добавите в игру настоящую атмосферу.
Завершите разработку игры, собрав все части воедино. Научитесь оптимизировать приложение, тестировать его на разных устройствах и готовить к публикации. Добавите финальный экран с результатами, меню перезапуска и кнопку «Играть снова».
Просмотр обучающих видеороликов
Делаете все тогда, когда вам это удобно и в подходящем вам темпе
Объяснение возникших вопросов, закрепление пройденного материала и исправление ошибок
Данный проект, показывающий ваши навыки, будет прекрасным дополнением к вашему портфолио
Обучение организовано так, что вы можете спокойно совмещать его с работой, учебой и личной жизнью. Именно вы решаете, когда работать с материалами курса - вы занимаетесь тогда, когда удобно вам. Все уроки курса будут всегда в вашем доступе, даже после окончания курса, поэтому вы в любой момент сможете повторить пройденный материал.
Именно вы решаете, когда и сколько заниматься. Обычно студенты тратят на обучение от трех до пяти часов в неделю.
Да, вы всегда сможете задать вопрос преподавателю в личном кабинете. Также вы будете получать от него обратную связь после выполнения домашних заданий.
Проверять ваши домашние задания будут эксперты, а также вас будет сопровождать куратор, который поможет справиться с трудностями. Вы получите профессиональные советы, рекомендации и лайфхаки.
Вы сможете смотреть вебинары как в онлайн-режиме, так и в записи, после чего получите домашние задания и обратную связь в чате.
Бизнес-аналитика
Project Manager в IT
Стилист-имиджмейкер
Эффективный руководитель