Что такое UIKit в iOS?
Что проверяют
Ориентируется ли кандидат в платформе: из каких кирпичей собран экран, кто отвечает за отрисовку, какие правила фреймворка нарушать нельзя. Заодно проверяют, понимает ли он место UIKit рядом со SwiftUI, а не считает его музейным экспонатом или, наоборот, единственным вариантом.
Как отвечать
UIKit это императивный фреймворк интерфейса для iOS и родственных платформ: иерархия окон и представлений, контроллеры экранов, обработка ввода, анимации, текст и шрифты, изображения, доступность.
Опорные элементы стоит перечислить снизу вверх. Объект приложения и делегат сцены отвечают за запуск и жизненный цикл, окно хранит корневой контроллер. UIView это узел дерева представлений, а рисует и анимирует его слой из Core Animation. UIViewController управляет одним экраном. Списки строятся на таблице и коллекции с переиспользованием ячеек и источником данных. Адаптацию под размеры экрана даёт Auto Layout и классы размеров. События и жесты идут по цепочке респондеров.
Правила, которые ждут отдельно: обращаться к UIKit можно только с главного потока; анимации делаются через штатные методы представления или аниматор свойств; тяжёлую работу выносят в фон, а результат возвращают на главный поток.
Хорошо закончить про сосуществование со SwiftUI: они встраиваются друг в друга через контроллер-обёртку и представимый тип, и в живом проекте обычно есть оба.
Где спотыкаются
Обновляют интерфейс из фонового потока после сетевого ответа. Приложение может не упасть сразу, и от этого хуже: ошибка всплывает редкими странными артефактами и падениями, которые тяжело воспроизвести.
Утверждают, что фреймворк сам подстраивает интерфейс под размеры и ориентации. Сам по себе он лишь растягивает представления по маске автоизменения, а настоящая адаптация это Auto Layout, классы размеров и безопасные зоны.
Не помнят про переиспользование ячеек. Ячейка приходит из очереди с чужим содержимым, и без сброса состояния в момент переиспользования в списке появляются чужие картинки, а на асинхронной загрузке ещё и подставляются не в ту строку.