25 вопросов
Практика
Какой подход ты предпочитаешь при разработке пользовательских интерфейсов в iOS: Interface Builder со storyboards, программная вёрстка в коде или комбинация обоих подходов? Объясни причины своего предпочтения.
Каков твой подход к созданию кастомных UIView компонентов, и как ты будешь справляться с их рисованием, расположением и взаимодействием с пользователем?
Какие рекомендуемые подходы для передачи данных между view controllers в Swift — как в направлении вперёд, так и в обратном, а также для управления общим состоянием между несколькими контроллерами?
Можешь объяснить, как работает цепь обработчиков (responder chain) в iOS/Swift приложениях, включая то, как события распространяются через иерархию объектов?
Можешь объяснить ключевые архитектурные и функциональные различия между UITableView и UICollectionView в Swift, включая их паттерны управления данными и подходящие случаи использования для каждого?
Можешь объяснить ключевые архитектурные различия между SwiftUI и UIKit, особенно в их подходе к дизайну UI и управлению состоянием?
Можешь объяснить различия между property wrapper'ами `@State`, `@Binding` и `@ObservedObject` в SwiftUI, включая их назначение и сценарии использования?
Как работает `@EnvironmentObject` в SwiftUI, и какие требования нужно соблюдать для использования его при передаче данных между иерархиями представлений?
Какое назначение property wrapper `@Environment` в SwiftUI и как его использовать для доступа к значениям окружения?
Можешь объяснить, как система environment в SwiftUI позволяет передавать данные через иерархию представлений, и описать ключевые различия между использованием environment injection и передачей данных через инициализаторы представлений?
Какая цель `@ViewBuilder` в SwiftUI и как он позволяет использовать декларативный синтаксис для комбинирования нескольких views?
Какова цель аннотации `@MainActor` в Swift и почему она важна для разработки на SwiftUI?
Какие ключевые подходы и лучшие практики существуют для реализации навигации в SwiftUI приложениях, и чем они отличаются между версиями iOS?
Какие существуют разные методы для реализации анимаций в SwiftUI, и чем неявные анимации отличаются от явных?
Можешь объяснить ключевые различия между `@StateObject` и `@ObservedObject` в Swift и когда ты бы использовал каждый из них?
Можешь сравнить SwiftUI и UIKit, обсудив преимущества и недостатки каждого фреймворка, особенно с точки зрения эффективности разработки, совместимости платформ, зрелости и соображений производительности?
Можешь объяснить ключевые различия между декларативным и императивным подходами к разработке UI в Swift, и описать, как каждый фреймворк управляет состоянием и обновлениями представлений?
Можешь объяснить протокол `View` в SwiftUI, включая его роль как основного протокола для всех представлений, обязательное свойство `body` и то, как механизм diffing в SwiftUI оптимизирует обновления интерфейса?
Можешь объяснить разницу между `@IBOutlet` и `@IBAction` в Swift и описать, когда ты бы использовал каждый из них?
Как макрос `@Observable` в Swift 5.9+ улучшает традиционный подход с `ObservableObject` и `@Published` для управления состоянием?
Какие ключевые различия между `viewDidLoad` и `viewDidAppear` с точки зрения времени их вызова и какие задачи должны выполняться в каждом методе?
Можешь объяснить методы жизненного цикла UIViewController в Swift и описать конкретное назначение каждого метода в последовательности от инициализации до закрытия?
Можешь объяснить ключевые различия между свойствами `frame` и `bounds` в Swift, особенно в контексте их систем координат и того, как изменения каждого из этих свойств влияют на позиционирование view и скроллинг контента?
Можешь объяснить, как работает Auto Layout в iOS-разработке и описать механизмы, которые он использует для динамической подстройки размеров и позиций view'ов на разных устройствах и конфигурациях экрана?
Какую роль играет свойство `reuseIdentifier` в управлении ячейками UITableView и оптимизации производительности?