Детальна програма навчання
- Команди та перша програма на Swift
- Змінні, константи (let/var) та базова типізація
- Робота з цілими числами, рядками та введення даних
- Умовні оператори та базова логіка
- Цикли та керування потоком виконання
- Встановлення IDE, SDK, Noctule та налаштування проєкту
- Рядки: операції, форматування, split та trim
- Switch та діапазони: базовий pattern matching
- Функції: параметри, labels, inout та tuple-повернення
- Optionals глибше: if let, guard let, ??, chaining
- Array: основи роботи з масивами
- Array під капотом: ArraySlice, COW та вартість операцій
- Dictionary: ключ-значення та частотні карти
- Set та кортежі (tuples)
- Рядки під капотом: Character, індекси та Substring
- Замикання I: синтаксис, map, filter, compactMap
- Замикання II: reduce, пайплайни та читабельність коду
- Протоколи Sequence, Collection та lazy-обчислення
- Порівняння та сортування: Equatable, Comparable, бінарний пошук
- Рекурсія та алгоритмічне розбиття задач
- Алгоритми на масивах: two pointers, sliding window, prefix sums
- Алгоритми з Dictionary та Set: hashing, grouping, indexing
- Struct I: основи структур, дані та методи
- Struct II: computed properties, observers, проєктування типів
- Enum I: основи, raw values, CaseIterable
- Enum II: associated values для станів та команд
- Optionals поглиблено: binding, chaining, map, flatMap
- Ініціалізація: failable init (?) та Value Objects
- Помилки I: протокол Error, throws, try, do/catch
- Помилки II: try?, try!, шари обробки та UX помилок
- Керування потоком: Result, defer, assert, precondition
- Дати та час: Date, Calendar, форматування (ISO8601)
- CLI I: парсинг аргументів командного рядка та токенізація
- CLI II: регулярні вирази (Regex) та валідація
- Керування пам'яттю: Value vs Reference семантика
- Class: основи, init, deinit, ідентичність об'єктів
- ARC: керування пам'яттю, retain cycles, weak, unowned
- Замикання в пам'яті: escaping та capture lists
- ООП: успадкування, композиція та type casting
- Протоколи I: контракти, композиція та any
- Протоколи II: default-реалізації та POP (Protocol-Oriented Programming)
- Extensions та вступ до Generics
- Generics I: обмеження (where), алгоритми та rethrows
- Generics II: практика на Stack, інваріанти, Hashable
- Просунуті протоколи: associatedtype, Comparable, ID
- Type Erasure: Existentials та старт архітектури
- Архітектура: DTO, Domain, роутинг помилок та межі модулів
- SwiftPM I: таргети, залежності, build, run, test
- SwiftPM II: Access control, SemVer та локальні пакети
- Інженерія: API-дизайн, документація та основи Git
- CI/CD базово: GitHub та вступ до XCTest
- Тестування I: патерн AAA, testable, table-driven тести
- Тестування II: Mocks та interaction-тести
- Інженерія: стратегії дебагінгу та інфраструктура логування
- Файлова система: FileManager, шляхи та data-dir
- Текстові файли: I/O операції, UTF-8, CSV, streaming
- Бінарні файли: Data, байти, hex dump, chunked I/O
- Парсинг I: JSON, базовий Codable
- Парсинг II: просунутий Codable (CodingKeys, стратегії)
- Дані: schemaVersion, міграції та валідація
- Дані: патерн Repository, backup, надійний запис
- Індексація, міні-профілювання та основи HTTP
- Мережа I: URLSession, URLRequest, URLComponents
- Мережа II: Endpoint builder, DTO-мапінг, вступ до async/await
- Async/Await I: Task, cancellation, таймаути
- Мережа III: відмовостійкість, retry, моки та async-тестування
- Мережа IV: кешування, rate limiting та пайплайни
- Concurrency I: async let та structured concurrency
- Concurrency II: TaskGroup, пріоритети та ліміти
- Concurrency III: Actors, Sendable, захист стейту, reentrancy
- Concurrency IV: AsyncSequence, AsyncStream, буферизація
- Фіналізація CLI: індикація прогресу, unsafe memory, оптимізація та крос-компіляція
360+
Лекцій
1000+
Завдань
72
Тести
А також:
- Миттєва перевірка
- AI code validator
- Плагін для IDE
- WebIDE
- Гейміфікація
- Мотиваційні лекції