Как происходит верстка в проекте
Что проверяют
Как вы на самом деле собираете интерфейс: кодом, в Interface Builder или на SwiftUI, и почему именно так. Интервьюер слушает, понимаете ли вы, откуда на экране берутся размеры и отступы. Следом обычно спрашивают, как вы совмещаете SwiftUI и UIKit в одном проекте.
Как отвечать
Опишите процесс своего проекта по шагам, с конкретными инструментами:
- макет: дизайн приходит из Figma, цвета, шрифты и отступы вынесены в дизайн-систему, а не вбиты числами по месту. Цвета лежат в Asset Catalog с вариантом для тёмной темы;
- UIKit кодом: Auto Layout через якоря и
NSLayoutConstraint.activate, у вьюtranslatesAutoresizingMaskIntoConstraints = false, привязка кsafeAreaLayoutGuide. Для рядов и колонокUIStackView, для списковUICollectionViewс compositional layout. Многие команды берут SnapKit ради краткости; - SwiftUI: новые экраны часто пишут на нём и встраивают в UIKit через
UIHostingController, а старые вью подключают обратно черезUIViewRepresentable. Вёрстку проверяют в превью через#Preview; - адаптивность: Dynamic Type (
preferredFont(forTextStyle:)иadjustsFontForContentSizeCategory), длинные локализации, маленький экран iPhone SE и iPad; - проверка: снапшот-тесты, например на библиотеке swift-snapshot-testing, ловят случайный сдвиг вёрстки ещё на ревью.
Хорошо объяснить приоритеты content hugging и compression resistance: именно они решают, какая метка сожмётся, когда текста больше, чем места.
Про сториборды скажите честно: для прототипа они удобны, но их XML плохо мержится, поэтому в командах экраны обычно делают кодом или хотя бы разносят по отдельным XIB, чтобы двое не правили один файл.
Где спотыкаются
Перечисляют все инструменты подряд, «Storyboard, Auto Layout, SwiftUI», и не могут сказать, что используется в их проекте и почему.
Не умеют читать предупреждения о конфликтующих констрейнтах в консоли. На вопрос «почему лейбл обрезается» отвечают «поправлю отступ», хотя дело в приоритетах.
Проверяют экран на одном симуляторе со стандартным шрифтом. Крупный Dynamic Type и немецкая локализация ломают такую вёрстку в первый же день.