Вопросы на собеседовании: Swift
Акторы и гонки данных
Изоляция акторов и реентерабельность,
Sendable,@MainActorи глобальные акторы, и правила строгой конкурентности Swift 6 / 6.2, превращающие гонки данных в ошибки компиляции.12 вопросов
Жизненный цикл и система
Состояния приложения и последовательность запуска, фоновое выполнение и push, диплинки и App Group'ы, разрешения, локализация и доступность.
11 вопросов
Архитектура
MVC, MVVM, VIPER/Clean и однонаправленный поток; паттерны Coordinator и Repository, внедрение зависимостей, SOLID и разбиение приложения на пакеты.
14 вопросов
Async/await и структурированная конкурентность
Как
awaitприостанавливает без блокировки, структурированные и неструктурированные задачи, task group'ы, кооперативная отмена, continuation'ы и async-последовательности.13 вопросов
Auto Layout и отрисовка
Intrinsic content size и приоритеты ограничений, отладка конфликтов constraint'ов, саморазмерящиеся ячейки и что ломает отрисовку при прокрутке (offscreen-проходы).
9 вопросов
Замыкания и функции
Замыкания и семантика захвата — escaping против non-escaping, списки захвата,
@autoclosure, функции высшего порядка,inoutи result builder'ы.12 вопросов
Combine
Реактивный фреймворк Apple — publisher'ы, подписчики, операторы и связывание во MVVM.
13 вопросов
Многопоточность и GCD
Dispatch-очереди, QoS, взаимоблокировки, барьеры, группы и семафоры,
Operationи гонки данных, которые эти средства призваны предотвращать.13 вопросов
Обработка ошибок
Выбор между
throws,Resultи optional'ами; вариантыtry,rethrows, типизированные throws и проектирование типов ошибок, пригодных для UI.8 вопросов
Память и ARC
Как ARC освобождает объекты, как возникают циклы удержания и как их разрывают через
weak/unowned, и как искать утечку инструментами анализа памяти.12 вопросов
Сетевой слой
Задачи
URLSessionи кэширование, декодированиеCodable, обновление токена и пиннинг сертификата, повтор с backoff и выбор транспорта для живого экрана.12 вопросов
Производительность
Профилирование через Instruments, время запуска и hitch'и, стоимость декодирования изображений, размер бинарника, санитайзеры и отсечение регрессий в CI.
13 вопросов
Хранение данных
Выбор между UserDefaults, файлами, Keychain, Core Data и SwiftData; стек Core Data, его правила многопоточности и миграции, и защита данных на диске.
14 вопросов
Обёртки свойств и макросы
Во что компилируется обёртка свойства, наблюдатели свойств и
lazy, KeyPath и чем макрос Swift вроде@Observableотличается от обёртки.10 вопросов
Протоколы и дженерики
Протокол-ориентированное программирование, associated type, ограничения дженериков,
someпротивanyи как диспетчеризуются требования протоколов.13 вопросов
Основы Swift
Optional'ы,
let/var, перечисления, коллекции,guard/deferи сопоставление с образцом — языковой фундамент, с которого начинается любое iOS-собеседование.13 вопросов
SwiftUI
Декларативный UI-фреймворк — состояние, связывания и композиция представлений.
18 вопросов
Систем-дизайн iOS
Проектирование iOS-модулей и библиотек — многопоточность, офлайн-режим, сеть и расширяемость.
16 вопросов
Тестирование
Что проверяет модульный тест, тестовые двойники, тестирование async- и actor-изолированного кода, фреймворк Swift Testing, снапшоты и о чём умалчивает покрытие.
10 вопросов
Инструменты и релиз
Менеджеры зависимостей и XCFramework, подпись кода и provisioning,
.xcconfigи секреты, символикация крашей, выбор линковки и безопасный выпуск.9 вопросов
Основы UIKit
Жизненный цикл view controller,
frameпротивbounds, переиспользование ячеек, цепочка ответчиков и hit-testing,CALayerи распознаватели жестов.12 вопросов
Значимые и ссылочные типы
Чем значимая семантика struct отличается от ссылочной семантики class во время выполнения — копирование, мутация, идентичность, copy-on-write и где живёт каждый тип.
11 вопросов