Вернуться в каталог собеседований

Реальное iOS собеседование в Yandex / Мобильный разработчик

Стрим с демонстрацией iOS-собеседования: теория Swift, реализация generic groupBy и упрощённого hit testing для UIView. В конце участники дают обратную связь по решению и обсуждают применимость интервью-задач.

Алексей Гладков
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 20,6 тыс.
  • Лайки на YouTube: 424
Открыть на YouTube

Таймлайн

Коротко о видео

Это демонстрационное 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 участники рассматривают как последующие усложнения.
  • По словам интервьюера, задача нужна не для точного грейда, а чтобы увидеть рассуждения, качество кода, знание стандартной библиотеки и умение разбирать крайние случаи.
  • Кандидат отмечает, что в реальной работе обычно доступны запуск кода, измерения и готовые библиотеки, тогда как на интервью абстрактные задачи проверяют способ мышления в ограниченное время.

Рекомендуем посмотреть