1 - Базовые знания
- Фундаментальные типы данных и операции с ними
- Кортежи, последовательности и коллекции
- Операторы управления (циклы, условия)
- Функции и замыкания
- Опциональные типы данных
- Классы, структуры, перечисления
- Объектно-ориентированное программирование
- Протоколы
- Протокол-ориентированное программирование
- Расширения
- Дженерики (Универсальные типы)
- Обработка ошибок
2 - Работа с интерфейсом
- Фреймворк UIKit, в частности классы UIView, UIViewController, UITableView и UICollectionView
- Фреймворк SwiftUI (декларативный подход)
- Фреймы и констрейнты (технология AutoLayout)
- Верстка с помощью Storyboard, XIB
- Верстка с помощью кода
- Фреймворк SnapKit (работа с констрейнтами в коде)
- Фреймворк Core Animation, класс CALayer
- Фреймворк Core Graphics
3 - Функционирование приложения
- Процессы и потоки (thread)
- Objective-C Runtime
- Жизненный цикл приложения (классы AppDelegate и SceneDelgate)
- Жизненный цикл вью контроллера
4 - Управление памятью
- Устройство памяти, области памяти стек и куча
- Reference type и value type
- Слабые (weak), сильные (strong) и бесхозные (unowned) ссылки
- ARC и MRC
5 - Хранение данных
- Класс FileManager
- Класс UserDefaults
- Фреймворк CoreData
- Фреймворк Realm
- Фреймворк Firebase
6 - Работа с сетью
- Класс URLSession
- Фреймворк Alamofire
7 - Многопоточность
- async/await (Swift 5.5+)
- Task, TaskGroup (Swift 5.5+)
- Акторы (Swift 5.5+)
- Библиотека Grand Central Dispatch
- Класс Operation
- Класс Thread
8 - Реактивное программирование
- Фреймворк Combine
- Фреймворк RxSwift
- Фреймворк ReactiveSwift
9 - Паттерны
- MVC
- MVP
- MVVM
- VIPER
- Координаторы
- Делегирование
- Одиночка (Singleton)
10 - Менеджеры зависимостей
- Swift Package Manager
- CocoaPods
- Carthage
11 - Технологии Apple
- Push-уведомления
- Universal Links
12 - Другие знания
- Алгоритмы и структуры данных
- Принципы SOLID
- Фреймворк Swinject
- Система управления версиями Git
- Мультиплатформенный фреймворк Firebase (авторизация, хранение данных, уведомления и многое-другое)