Какие варианты создания UI и верстки существуют в iOS
Что проверяют
С чем вы работали на самом деле и умеете ли выбирать инструмент, а не спорить в жанре «SwiftUI против UIKit». Ответ заодно показывает возраст ваших проектов. Следом уточняют, что выберете для нового экрана в существующем UIKit-приложении.
Как отвечать
Разложите на способы и назовите цену каждого:
- UIKit кодом:
UIViewиUIViewController, Auto Layout черезNSLayoutAnchor,UIStackViewдля линейных раскладок. Всё в исходниках, значит нормальные ревью и мержи. Для списковUICollectionViewсUICollectionViewCompositionalLayoutиUICollectionViewDiffableDataSource; - Storyboard: наглядно на старте, но большой XML конфликтует при слиянии веток, а связи через
@IBOutletи переходы ломаются молча, уже в рантайме; - XIB: тот же Interface Builder, но на один экран или вью. Часто живёт в проектах для переиспользуемых ячеек;
- SwiftUI: декларативно, состояние это источник истины.
@Stateи@Binding, макрос@Observableиз фреймворка Observation (с iOS 17) вместоObservableObject,NavigationStackдля навигации, превью в Xcode укорачивают цикл правки; - вёрстка через
frame: остаётся в узких местах, где нужен полный контроль и максимальная скорость прокрутки.
Про выбор сегодня: в новом проекте по умолчанию SwiftUI, UIKit подключают точечно там, где он всё ещё сильнее (сложные коллекции, тонкая работа с текстом и камерой). Мостики знать обязательно: UIViewRepresentable и UIViewControllerRepresentable заносят UIKit внутрь SwiftUI, UIHostingController делает обратное. Обёртки над Auto Layout вроде SnapKit упоминайте как удобство, а не как отдельную технологию.
Где спотыкаются
Отвечают «везде SwiftUI» и не могут назвать ни одного места, где он проигрывает. Уверенность без границ применимости читается как малый опыт.
Ставят Storyboard и Auto Layout в один ряд. Первое это способ описать интерфейс, второе система ограничений, и она работает в любом из вариантов, включая код.
Рассказывают про автоматическое обновление интерфейса, но не могут объяснить, что вызывает перерисовку. Ждут слов про источник истины и идентичность вью, а не про магию.