Разработка под iOS
Онлайн курс
Курс в проработке
О курсе
Для кого?
Курс рассчитан на тех, кто имеет навыки программирования на любом языке. Желательно иметь устройство с операционной системой MacOS.
Что дает курс?
- Расскажем об основных языковых конструкциях и возможностях Swift;
- Поможем освоить основные инструменты iOS-разработчика;
- Научим создавать iOS-приложения с грамотным пользовательским интерфейсом и продуманной бизнес-логикой.
Информация
- Занятия проходят онлайн на YouTube-канале Академии;
- После регистрации вы получите ссылку на закрытый телеграм-канал курса, в котором сможете общаться с преподавателями и получать материалы с занятий;
- Перед стартом курса советуем прочитать статью «С чего начать путь iOS-разработчику» — в ней наши преподаватели собрали советы, как выстроить грамотный процесс обучения.
Программа курса
-
/01 темаВведение в курс. Работа с системой контроля версий Git
Краткий экскурс в историю мобильной разработки;
Концепция языка Swift и платформы iOS;
Git и основные команды, необходимые для разработки.
-
/02 темаОбъектно-ориентированный подход в разработке. Основы Swift
Основные подходы в программировании;
Объектно-ориентированный подход в разработке приложений;
Протоколы, расширения, типы значения и ссылочные типы данных, дженерики и работа с коллекциями в Swift;
Управление памятью с помощью ARC.
-
/03 темаОсновы работы с интерфейсом пользователя и графикой
Фреймворк UIKit и разработка элементов пользовательского интерфейса;
Основные компоненты, UIView, CALayer, CAShapeLayer, UIBezierPath, метод draw;
Процессы отрисовки UI элементов и обработка нажатий.
-
/04 темаОсновные элементы UIKit, переходы между экранами
UIViewController;
Роль UIViewController в работе приложений, жизненный цикл и методы, из которых он состоит;
Механизмы переходов между экранами: segue, storyboard, объект router, паттерн coordinator.
-
/05 темаПаттерн делегирования. Работы с таблицами, коллекциями, стеком
Механизм работы с UITableView и UICollectionView;
Переиспользование ячеек в табличных элементах;
Предоставление данных и обработка событий с помощью паттерна делегирования.
-
/06 темаРабота с сетевым слоем
Механизм получения данных с сервера, клиент-серверная архитектура, протоколы передачи данных HTTP, TCP, UDP;
Классы для работы с сетью URLSession, URLRequest, парсинг данных JSON в модели;
Библиотеки для работы с сетью Moya, Alamofire.
-
/07 темаХранение данных
Хранение данных в приложении на основе key - value значений;
NSUserDefaults, сериализация данных;
Хранение данных на основе реляционных баз данных CoreData, GRDB;
Хранение данных на основе нереляционных баз данных Realm, Firebase Realtime Database.
-
/08 темаМногопоточность
Что такое многопоточность, понятия потока, процесса и задачи;
Какие средства для организации многопоточности предоставляет iOS;
Grand Central Dispatching (GCD), NSOperation, Thread;
Механизмы блокировок.
-
/09 темаПаттерны проектирования и архитектурные паттерны
Что такое архитектура мобильного приложения, как ее выбрать, каким образом можно адаптировать под свой проект и для чего нужна;
MV(x)-паттерны и различия между ними;
Какие бывают паттерны проектирования и какие используются в стандартных iOS-фреймворках.
-
/10 темаМенеджеры пакетов
Что такое менеджеры пакетов, для чего их использовать и как именно;
SPM и Cocoapods: что из этого удобнее и почему.
-
/11 темаSwiftUI, async/await, Combain
Что нового в iOS-индустрии;
Чем отличается UIKit от SwiftUI, async/await от GCD и как использовать Combain;
Перспективы новых инструментов для разработки и стоит ли отказываться от старых.
-
/12 темаИтоговое занятие