# SwiftUI Advanced (iOS) > Layout protocol, preference keys, GeometryReader, matchedGeometryEffect, ViewBuilder - 22 питань зі співбесід - Senior - [Питання зі співбесід: iOS](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy.md) ## 1. Що таке протокол Layout у SwiftUI? **Відповідь** Протокол Layout дозволяє створювати власні контейнери представлень, визначаючи, як підпредставлення позиціонуються та масштабуються. Він замінює ручні підходи з GeometryReader для складних макетів, пропонуючи декларативний і компонований API для побудови складних компонувань представлень. ## 2. Як реалізувати власний layout, дотримуючись протоколу Layout? **Відповідь** Реалізація Layout вимагає визначення двох основних методів: sizeThatFits, що повертає загальний розмір контейнера, і placeSubviews, що розміщує кожен subview за допомогою пропозицій розташування. Ці методи працюють разом, створюючи узгоджену та передбачувану систему layout. ## 3. Яка основна перевага використання протоколу Layout порівняно з GeometryReader? **Відповідь** Протокол Layout пропонує композиційний і придатний для повторного використання підхід до layout, тоді як GeometryReader часто вимагає імперативного коду в кожному view. Layout відокремлює логіку розташування від логіки рендерингу, покращуючи тестованість і підтримуваність компонентів. ## Ще 19 доступних питань - Як передати параметри конфігурації до власного layout? - Коли використовувати GeometryReader замість протоколу Layout? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід iOS - [Основи Swift](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swift-basics.md): 25 запитань, Junior - [Основи мови Swift](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swift-language-essentials.md): 15 запитань, Junior - [Основи UIKit](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/uikit-fundamentals.md): 18 запитань, Junior - [Життєвий цикл UIViewController](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/uiviewcontroller-lifecycle.md): 20 запитань, Junior - [UserDefaults & Keychain](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/userdefaults-keychain.md): 20 запитань, Junior - [Життєвий цикл застосунку](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/app-lifecycle.md): 20 запитань, Junior - [Auto Layout & Constraints](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/auto-layout-constraints.md): 24 запитань, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/uitableview-uicollectionview.md): 25 запитань, Mid-Level - [Основи SwiftUI](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swiftui-basics.md): 18 запитань, Mid-Level - [Керування станом у SwiftUI](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swiftui-state-management.md): 22 запитань, Mid-Level - [Навігація SwiftUI](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swiftui-navigation.md): 18 запитань, Mid-Level - [Networking & URLSession](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/networking-urlsession.md): 20 запитань, Mid-Level - [Codable та парсинг JSON](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/codable-json-parsing.md): 20 запитань, Mid-Level - [Core Data](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/core-data.md): 22 запитань, Mid-Level - [Протоколо-орієнтоване програмування](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/protocol-oriented-programming.md): 20 запитань, Mid-Level - [Архітектура MVVM](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/mvvm-architecture.md): 20 запитань, Mid-Level - [Push-сповіщення](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/push-notifications.md): 18 запитань, Mid-Level - [Модульне тестування та XCTest](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/unit-testing-xctest.md): 20 запитань, Mid-Level - [Тестування інтерфейсу користувача](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/ui-testing.md): 18 запитань, Mid-Level - [Xcode і система збірки](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/xcode-build-system.md): 16 запитань, Mid-Level - [Swift Package Manager](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swift-package-manager.md): 16 запитань, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/memory-management-arc.md): 22 запитань, Senior - [Combine Framework](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/combine-framework.md): 24 запитань, Senior - [Concurrency & async/await](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/concurrency-async-await.md): 26 запитань, Senior - [iOS Design Patterns](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/ios-design-patterns.md): 24 запитань, Senior - [Оптимізація продуктивності](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/performance-optimization.md): 22 запитань, Senior - [Безпека та шифрування](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/security-encryption.md): 20 запитань, Senior - [Архітектура застосунків iOS](https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/ios-app-architecture.md): 22 запитань, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/technologies/ios/pytannia-spivbesidy/swiftui-advanced