Вернуться в видеотекуРеальное iOS собеседование в Yandex / Мобильный разработчик
Стрим с демонстрацией iOS-собеседования: теория Swift, реализация generic groupBy и упрощённого hit testing для UIView. В конце участники дают обратную связь по решению и обсуждают применимость интервью-задач.
- Направление
- Mobile
- Формат
- Видео
- Компания
Яндекс- Длительность
- 1 ч 27 мин
Коротко о видео
Это демонстрационное iOS-собеседование в формате стрима: интервьюер Никита Пекурин проверяет у Дениса Супруна ход рассуждений, теорию Swift и способность писать код без автодополнения и запуска. Обсуждаются коллекции, value/reference types, словари и Hashable, затем кандидат решает две задачи: обобщённый groupBy для последовательности и упрощённый hit testing для иерархии UIView. В финале участники разбирают, какие признаки в решении помогают интервьюеру оценивать практические навыки и мышление кандидата.
Затронутые темы
Что взять на заметку
- Перед написанием решения проговаривайте контракт: для groupBy нужны Sequence, замыкание Element -> Key, словарь [Key: [Element]] и пустой результат для пустой последовательности.
- Ключ словаря должен быть Hashable; при подготовке полезно понимать связь Hashable с Equatable, назначение хеш-таблицы и смысл хеш-коллизий.
- В задаче на hit testing нужно различать координатные системы родительской и дочерней UIView, преобразовывать точку через convert и проверять попадание через point(inside:with:).
- Для поиска обработчика касания в дереве UIView нужен обход в глубину; subviews следует обходить в обратном порядке, чтобы учитывать z-order и возвращать верхний подходящий view.
- В упрощённой реализации hit testing стоит сразу исключать view с выключенным userInteractionEnabled; скрытость, alpha, жесты и поведение за bounds участники рассматривают как последующие усложнения.
- По словам интервьюера, задача нужна не для точного грейда, а чтобы увидеть рассуждения, качество кода, знание стандартной библиотеки и умение разбирать крайние случаи.
- Кандидат отмечает, что в реальной работе обычно доступны запуск кода, измерения и готовые библиотеки, тогда как на интервью абстрактные задачи проверяют способ мышления в ограниченное время.