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

Мок-собеседование iOS разработчика

Длинное мок-собеседование iOS-разработчика: Swift runtime, конкурентный live coding и UIKit. В финале участники обсуждают оценку кандидата, критерии роста от middle к senior и ограничения технических интервью.

Easy Swift
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 18,9 тыс.
  • Лайки на YouTube: 520
Открыть на YouTube

Таймлайн

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

В тренировочном мок-собеседовании iOS-разработчик Владимир отвечает на вопросы Михаила о Swift, памяти, диспетчеризации, многопоточности и UIKit, а затем получает подробную обратную связь. Разбираются value semantics, `mutating`, стек вызовов, existential containers и dispatch, а в live-coding задаче — параллельная загрузка объектов с сохранением порядка результатов. В UI-блоке обсуждают режимы `RunLoop` для таймера, жизненный цикл `UIViewController`, `frame`/`bounds` и создание кастомных view. По мнению интервьюера в рамках этого mock interview, Владимира можно было бы нанять на уровень middle, но для senior-уровня нужны более самостоятельные и глубокие ответы без подсказок.

Затронутые темы

Что взять на заметку

  • Для вопросов о `mutating` полезно связывать ответ с value semantics структур, но не сводить размещение всех value types к простому правилу «всегда на стеке».
  • Нужно уметь объяснить стек вызовов: кадры создаются при вложенных вызовах, а адрес возврата позволяет продолжить выполнение после завершения функции.
  • В задаче с параллельными сетевыми запросами недостаточно одного `DispatchGroup`: общую запись в результаты надо синхронизировать, а порядок исходных ID — сохранять отдельно.
  • Для сохранения порядка результатов собеседующий предлагает заранее выделить массив нужного размера и записывать результат по исходному индексу вместо словаря с последующей сортировкой.
  • Таймер UIKit, который должен продолжать работать во время скролла, следует добавлять в подходящий режим `RunLoop`, например `.common`, включающий default и tracking modes.
  • Подписки на обновления данных стоит привязывать к фактической видимости экрана и проверять порядок lifecycle-вызовов, особенно при интерактивном закрытии презентованного контроллера.
  • На собеседовании полезно явно показывать сильные практические области в резюме и описании проектов: за короткий разговор интервьюер может не успеть спросить обо всех специализированных навыках.

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