Девять тем технической секции iOS — от устройства Swift и ARC
до SwiftUI, UIKit, сетей и архитектуры: вопросы собеседований
с разобранными материалами
9 разделов, 92 материалаMiddle / SeniorИндивидуально с ментором
Для кого этот курс
iOS-разработчики, которые хотят понимать язык глубже уровня «пишу и работает»
Те, кто готовится к техническим секциям собеседований и хочет закрыть пробелы по всему стеку, а не только по Swift
Переходящие на Swift с Objective-C или другого стека
Курс собран как карта технической секции: по каждой теме — список
вопросов, которые звучат на собеседовании, и разобранные материалы
под них. Основа — официальная документация Apple, поверх неё
статьи с примерами и разборами.
Программа
Swift
Самая объёмная тема курса: язык от опционалов до акторов
Опционалы, коллекции, поток управления, замыкания, вариативные параметры и defer
Типы-значения против ссылочных, copy-on-write, struct против class по памяти и скорости
Инициализаторы, свойства и property wrappers, диспетчеризация методов, method swizzling
Протоколы и делегирование, associated types, дженерики, opaque return types, POP
Стек и куча, ARC и управление памятью
Потоки, GCD, NSOperationQueue, async/await, структурированная конкурентность и акторы
SwiftUI
Жизненный цикл, identity и система лэйаута
Жизненный цикл View и identity, @main, AppDelegate и SceneDelegate
Система лэйаута, стеки, VStack против LazyVStack
Property wrappers SwiftUI и написание собственного
@ViewBuilder и непрозрачные типы
Взаимная интеграция: SwiftUI в UIKit и UIKit в SwiftUI
UIKit
Жизненные циклы и производительность рендера
Жизненный цикл приложения и UIViewController
Scene Delegate против AppDelegate, иерархия классов UIKit
Auto Layout
Оптимизация скролла и рендера: frame buffer, Render Server, FPS, CPU против GPU
Combine
Publisher, Subscriber, операторы
Publisher, Subscriber, Subjects и операторы
subscribe(on:) против receive(on:), DispatchQueue.main против RunLoop.main
eraseToAnyPublisher() и Cancellables
Тестирование кода на Combine
Базы данных
Хранение данных на устройстве и Core Data
Способы хранения данных в iOS: плюсы, минусы, потокобезопасность
Core Data: основные сущности, fetch request, миграции
SQL и SQLite: операторы, типы соединений, связи, индексы
Сети
От модели OSI до WebSocket и GraphQL
Модель OSI, TCP/IP, отличие TCP от UDP
HTTP: элементы запроса, методы, коды ответов, HTTP против HTTPS, TLS/SSL
Идентификация, аутентификация и авторизация, MIME-типы
WebSocket и GraphQL
Паттерны и архитектура
UI-паттерны, GoF, code smells и CI/CD
UI-паттерны и паттерны проектирования
Антипаттерны ООП
Признаки хорошего и плохого кода (code smells)
CI/CD в мобильной разработке
Objective-C
Легаси, которое до сих пор спрашивают
Синтаксис, структура программы, функции
ООП в Objective-C, категории и расширения
Протоколы и делегаты, управление памятью
Foundation Framework и задачи на закрепление
Структуры данных
Array, Set, Dictionary и задачи
Array, Set, Dictionary: устройство и сложность операций
Прочие структуры данных
Задачи на структуры данных
Как построено обучение
Каждая тема — список вопросов с собеседований, материалы под них и практический блок
Теоретический блок: вопросы в той формулировке, в какой их задают на секции
Материалы: официальная документация Apple плюс статьи с примерами и разборами
Практический блок и задачи по Objective-C и структурам данных
Темп и акценты подстраиваются под ваш опыт — разбираете с ментором то, что провисает