Вернуться в видеотекуПубличное Собеседование iOS | Alex Ozun, Роман Тысячник | iOS Ukraine #2
Публичный разбор iOS-технического интервью: от фундаментального Swift и UIKit до тестирования, отладки и практик проведения собеседований. Формат включает комментарии интервьюера к ответам кандидата и финальную Q&A-сессию.
- Направление
- Mobile
- Формат
- Видео
- Компания
American Express- Длительность
- 2 ч 19 мин
Коротко о видео
Это демонстративное публичное iOS-собеседование Алекса Озуна с Романом Тысячником; оно прямо не связано с реальным наймом в American Express. В технической части обсуждают Swift, управление памятью, коллекции, конкурентность, UIKit, тестирование, архитектуру, отладку и менеджеры зависимостей. После каждой части интервьюер разбирает ответы кандидата, а в финале даёт личную положительную оценку его инженерному мышлению и отвечает на вопросы аудитории о найме и обучении.
Затронутые темы
Что взять на заметку
- Для интервью по Swift стоит уметь объяснять value/reference semantics, copy-on-write, захват значений в closure и причины retain cycle; отдельно различать weak и unowned ссылки.
- Нужно уверенно разбирать различия class и struct, цепочку инициализации классов, наследование, final, статическую и динамическую диспетчеризацию, полиморфизм и особенности protocol extension.
- Выбор между Array, Set и Dictionary следует обосновывать порядком элементов, уникальностью, Hashable и сложностью доступа; полезно знать Swift Collections, включая Deque, OrderedSet и OrderedDictionary.
- По конкурентности важны различия serial/concurrent queue и sync/async, риск deadlock при sync на той же очереди, DispatchGroup, семафоры, OperationQueue, зависимости и ограничение параллелизма.
- Для UIKit нужно понимать responder chain, Auto Layout как систему ограничений, роли CALayer/Core Animation, переиспользование ячеек UITableView и причины лагов при скролле: тяжёлую работу на main thread, лишние layout-пересчёты и blending.
- Тестовую стратегию стоит строить от критичных для продукта сценариев: сочетать unit-, интеграционные и UI-тесты, тестировать асинхронный код через XCTest expectations и изолировать зависимости протоколами/DI.
- При отладке полезны Instruments, Memory Graph Debugger, profiler, логи, условные breakpoints и git bisect для поиска коммита, внёсшего регрессию.