P
prepair.app
Пройти интервью →
EnglishУкраїнськаРусскийDeutsch
🍏

Senior iOS (Swift)Вопросы на собеседовании iOS разработчика

Senior · 5+ лет опыта

Собеседование iOS-разработчика проверяет систему типов Swift, понимание ARC и умение рассуждать о состоянии интерфейса — плюс обязательно найдётся вопрос, где retain cycle прячется на виду. Ниже — вопросы, которые задают чаще всего, каждый с эталонным ответом. Senior: архитектуру, трейд-оффы, менторство и принятие решений.

Попробовать — без регистрации
Готовим вопрос…

Темы для подготовки

Swift и опционалы
ARC и управление памятью
SwiftUI и UIKit
Конкурентность: async/await, Combine, GCD
Архитектура и состояние
Хранение данных и сеть

6 вопросов уровня Senior с ответами

1

Как выбирать между MVVM, MVC и чем-то вроде TCA?

Ответ

По тому, какова сложность приложения на самом деле. Apple-овский MVC достаточен для экрана, который показывает и правит одну сущность; MVVM оправдан, когда состояние вью достаточно сложное, чтобы тестировать его отдельно; однонаправленная архитектура окупается, когда состояние разделено между многими экранами и баги именно про его рассинхронизацию. Взять самое тяжёлое сразу — потерять скорость на годы.

2

Как ускорить сборку большой iOS-кодовой базы?

Ответ

Сначала измерить: сводка времени сборки называет файлы, которые доминируют, и обычно это горстка с тяжёлым выводом типов. Затем явные типы там, где вывод дорог, модуляризация, чтобы правка пересобирала один модуль, и меньше whole-module оптимизаций в отладке. Общие советы без замера обычно не двигают ничего.

3

Что делать с крешем, который не воспроизводится?

Ответ

Начать с частоты и группировки в отчёте: какие версии ОС, какие устройства, какая версия приложения и что делал пользователь. Добавить логирование вокруг подозреваемого пути и выкатить — самый быстрый способ воспроизвести редкое — инструментировать тех, кто в него попадает. Угадать фикс и выкатить не научит ничему, если частота не изменится.

4

Как проводить миграцию схемы в Core Data или SwiftData?

Ответ

Lightweight migration справляется с добавлением автоматически; всё, что преобразует данные, требует mapping model и проверенного пути с каждой версии, которая ещё в ходу. Забывают об ограничении: пользователи перескакивают версии — кто-то обновляется с релиза двухлетней давности, поэтому цепочка миграций обязана работать с каждой, а не только с последней.

5

Как планировать релиз, если обновление нельзя навязать?

Ответ

Исходя из того, что старые версии живут бесконечно: API остаётся обратно совместимым, фичи, требующие изменений в клиенте, включаются флагом с сервера, а всё удалённое должно переживаться клиентами, которые продолжают это звать. Kill switch стоит завести до того релиза, которому он понадобится. Поэтапная выкатка ограничивает радиус ошибки, которую вы ещё не нашли.

6

Как решать, что тестировать в мобильном приложении?

Ответ

Бизнес-логику и всё, где есть правило — цены, валидация, конечные автоматы — юнит-тестами, потому что они быстрые и стабильные. Небольшое число UI-тестов на критические пути, которые не должны ломаться никогда, с принятием того, что они медленные и иногда нестабильные. Проверка, что кнопка синяя, — это то, во что наборы превращаются, становясь обузой.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью Senior iOS (Swift) →
Бесплатно · 3 интервью в месяц

Другие уровни — iOS (Swift)

Junior iOS (Swift)Middle iOS (Swift)Все вопросы iOS (Swift)

Другие специализации

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend💎Senior Ruby on Rails🟣Senior .NET Backend Developer🔷Senior C++