UIKit: вопросы на собеседовании
Вопросы и ответы по UIKit: подготовка, примеры и типичные ошибки.
Проверьте себя по UIKit: 5 вопросов, ~10 минут
Вопросов: 40. Частые идут первыми, сложные возвращаются на повторение.
- Что такое Auto Layout и как создавать constraints программно по сравнению с Interface Builder?Junior· спрашивают почти всегда
- Как работает управление памятью в UIKit? Что такое retain cycles и как их предотвращать?Senior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работает навигация в UIKit с помощью
UINavigationController?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost - Как работает UITableView и каковы роли
dataSourceиdelegate?Junior· спрашивают почти всегда - Как работает жизненный цикл UIViewController? Опишите каждый lifecycle-метод.Senior· спрашивают почти всегда
- В чём разница между
UIViewиUIViewController?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - Как реализовать переиспользование ячеек (cell reuse) в UITableView и почему это важно для производительности?Middle· полный разбор — Jobs/Boost
- Что такое приоритет
NSLayoutConstraintи как он разрешает конфликтующие constraints?Middle· полный разбор — Jobs/Boost - Как реализовать пользовательский
UITableViewCellилиUICollectionViewCell?Junior· полный разбор — Jobs/Boost - Что такое паттерн delegate в UIKit и почему он широко используется?Junior
- В чём разница между
frame,boundsиcenterв UIKit?Junior· полный разбор — Jobs/Boost - Как обрабатывать появление клавиатуры и управлять insets у scroll view соответствующим образом?Middle· полный разбор — Jobs/Boost
- Как передавать данные между view controllers в UIKit?Middle
- Как реализовать pull-to-refresh в UITableView?Middle· полный разбор — Jobs/Boost
UIStoryboardvs программный UI vs XIB — каковы плюсы и минусы каждого?Middle· полный разбор — Jobs/Boost- Как интегрировать SwiftUI-представления в UIKit-приложение с помощью
UIHostingController?Middle - В каких mobile-проектах UIKit является сильным выбором, а где лучше выбрать native или другую cross-platform альтернативу?Middle· полный разбор — Jobs/Boost
- Как сравнить UIKit с альтернативами по performance, UX, доступу к platform APIs, найму и долгосрочной поддержке?Middle· полный разбор — Jobs/Boost
- Как понять, что проблема в приложении связана с UIKit, а не с backend, сетью, дизайном состояния или платформой?Senior
- Представьте, экран на UIKit тормозит, теряет состояние или ведёт себя по-разному на разных платформах. Как вы будете искать причину?Senior· полный разбор — Jobs/Boost
- Какие ошибки делают команды, когда строят приложение на UIKit как web/backend-проект без учёта mobile constraints?Middle· полный разбор — Jobs/Boost
- Какие архитектурные решения UIKit задаёт вокруг UI state, lifecycle, navigation, threading и platform integration?Middle
- Какие production-риски есть у UIKit: memory, lifecycle bugs, accessibility, offline mode, app size или platform-specific behavior?Senior· полный разбор — Jobs/Boost
- Что такое UIKit и какова его роль в разработке под iOS?Junior
- Как работает
UIScrollViewи что такоеcontentSizeиcontentOffset?Senior· полный разбор — Jobs/Boost - В чём разница между
UITableViewиUICollectionView?Middle· полный разбор — Jobs/Boost - Что такое
UIWindowи какую роль он играет в иерархии приложения?Middle· полный разбор — Jobs/Boost - Что такое Core Animation и как создавать базовые анимации в UIKit?Middle
- Что такое responder chain в UIKit и как работает обработка событий?Middle· полный разбор — Jobs/Boost
- В чём разница между
addTarget(_:action:for:)и closures для действий кнопок?Middle - Что такое
UITraitCollectionи size classes и как строить адаптивные макеты?Senior· полный разбор — Jobs/Boost - Какие распространённые архитектурные паттерны используются с UIKit (MVC, MVVM, VIPER)?Senior· полный разбор — Jobs/Boost
- Как работает Auto Layout debugging: ambiguous constraints, unsatisfiable constraints?Middle· полный разбор — Jobs/Boost
- Расскажите о случае, когда вы решали проблему с UIKit: lifecycle, performance, testing, release или platform integration.Middle
- Как избежать retain cycles с delegates, closures и Combine/async callbacks?Middle
- В чём разница между
weakиunownedссылками в контексте UIKit delegates?Junior· полный разбор — Jobs/Boost - Как реализовать пользовательскую анимацию перехода между view controllers?Senior· полный разбор — Jobs/Boost
- Что такое
UIAppearanceи как его использовать для глобального стилизования?Middle· полный разбор — Jobs/Boost - Что такое
UIKit Dynamicsи как добавить физически-обоснованную анимацию?Middle· полный разбор — Jobs/Boost - Как отлаживать проблемы с layout с помощью Xcode view debugger?Senior