Собеседование iOS разработчика | Вопросы Джуниору: Основы Swift, UIKit, Архитектура
Публичная запись собеседования junior iOS-разработчика с вопросами по Swift и UIKit, практической UI-задачей и обсуждением архитектуры. После интервью автор подробно комментирует ответы кандидата и зоны роста.
В’ячеслав Білий
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 18,6 тыс.
- Лайки на YouTube: 668
Таймлайн
Коротко о видео
Автор проводит публично записанное собеседование на позицию junior iOS-разработчика и последовательно проверяет основы Swift, UIKit, ARC, жизненные циклы, UI-вёрстку и проектирование. В практической части кандидат разбирает экран чатов для iPad, архитектуру загрузки данных из четырёх API, ViewModel и сетевой слой. В финале интервьюер даёт собственную оценку: кандидат силён для junior-уровня, но ему следует закрыть пробелы в фундаментальных темах и чаще уточнять требования до начала решения.
Затронутые темы
Что взять на заметку
- Подготовьте объяснение различий между class и struct, value/reference semantics, инициализаторов, extensions, протоколов и видов диспетчеризации методов Swift.
- По ARC важно уметь не только назвать strong, weak и unowned, но и объяснить момент освобождения объекта, область видимости, присваивание nil и условия retain cycle.
- Повторите Optional как generic enum с кейсами значения и отсутствия значения, а также Array, Set, Dictionary и требования к ключам словаря.
- Для UIKit стоит повторить жизненный цикл UIViewController, разницу между viewDidLoad и viewWillAppear, а также жизненный цикл приложения и background-режимы.
- В UI-задаче сначала уточняйте бизнес-требования: поведение скролла, состав секций, необязательные элементы, реакции и правила отображения данных.
- В задаче с несколькими API данные лучше агрегировать вне ячейки и передавать в неё одну подготовленную модель; ячейки не должны самостоятельно выполнять сетевые запросы.
- Повторите provisioning profiles, сертификаты, Bundle ID и типичные причины, по которым приложение не собирается на физическом устройстве.