# SwiftUI Advanced (iOS) > Layout protocol, preference keys, GeometryReader, matchedGeometryEffect, ViewBuilder - 22 pertanyaan wawancara - Senior - [Pertanyaan Wawancara: iOS](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara.md) ## 1. Apa itu protokol Layout di SwiftUI? **Jawaban** Protokol Layout memungkinkan pembuatan kontainer view kustom dengan mendefinisikan bagaimana subview diposisikan dan diukur. Ini menggantikan pendekatan manual GeometryReader untuk layout kompleks, menawarkan API deklaratif dan composable untuk membangun susunan view yang canggih. ## 2. Bagaimana cara mengimplementasikan layout kustom dengan menyesuaikan protokol Layout? **Jawaban** Mengimplementasikan Layout memerlukan pendefinisian dua metode utama: sizeThatFits yang mengembalikan ukuran total kontainer, dan placeSubviews yang memosisikan setiap subview menggunakan usulan penempatan. Metode-metode ini bekerja sama untuk menciptakan sistem layout yang koheren dan dapat diprediksi. ## 3. Apa keuntungan utama menggunakan protokol Layout dibandingkan GeometryReader? **Jawaban** Protokol Layout menawarkan pendekatan layout yang composable dan dapat digunakan kembali, sementara GeometryReader sering kali memerlukan kode imperatif di setiap view. Layout memisahkan logika penempatan dari logika rendering, meningkatkan kemampuan pengujian dan pemeliharaan komponen. ## 19 pertanyaan lagi tersedia - Bagaimana cara meneruskan parameter konfigurasi ke layout kustom? - Kapan sebaiknya menggunakan GeometryReader dibandingkan protokol Layout? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara iOS lainnya - [Dasar-Dasar Swift](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-basics.md): 25 pertanyaan, Junior - [Dasar-Dasar Bahasa Swift](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-language-essentials.md): 15 pertanyaan, Junior - [Dasar-Dasar UIKit](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uikit-fundamentals.md): 18 pertanyaan, Junior - [Siklus Hidup UIViewController](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uiviewcontroller-lifecycle.md): 20 pertanyaan, Junior - [UserDefaults & Keychain](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/userdefaults-keychain.md): 20 pertanyaan, Junior - [Siklus Hidup Aplikasi](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/app-lifecycle.md): 20 pertanyaan, Junior - [Auto Layout & Constraints](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/auto-layout-constraints.md): 24 pertanyaan, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/uitableview-uicollectionview.md): 25 pertanyaan, Mid-Level - [Dasar-Dasar SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-basics.md): 18 pertanyaan, Mid-Level - [Manajemen State SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-state-management.md): 22 pertanyaan, Mid-Level - [Navigasi SwiftUI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-navigation.md): 18 pertanyaan, Mid-Level - [Networking & URLSession](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/networking-urlsession.md): 20 pertanyaan, Mid-Level - [Codable & Parsing JSON](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/codable-json-parsing.md): 20 pertanyaan, Mid-Level - [Core Data](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/core-data.md): 22 pertanyaan, Mid-Level - [Pemrograman Berorientasi Protokol](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/protocol-oriented-programming.md): 20 pertanyaan, Mid-Level - [Arsitektur MVVM](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/mvvm-architecture.md): 20 pertanyaan, Mid-Level - [Notifikasi Push](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/push-notifications.md): 18 pertanyaan, Mid-Level - [Unit Testing & XCTest](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/unit-testing-xctest.md): 20 pertanyaan, Mid-Level - [Pengujian UI](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ui-testing.md): 18 pertanyaan, Mid-Level - [Xcode & Sistem Build](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/xcode-build-system.md): 16 pertanyaan, Mid-Level - [Swift Package Manager](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swift-package-manager.md): 16 pertanyaan, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/memory-management-arc.md): 22 pertanyaan, Senior - [Combine Framework](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/combine-framework.md): 24 pertanyaan, Senior - [Concurrency & async/await](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/concurrency-async-await.md): 26 pertanyaan, Senior - [iOS Design Patterns](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ios-design-patterns.md): 24 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Keamanan dan Enkripsi](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/security-encryption.md): 20 pertanyaan, Senior - [Arsitektur Aplikasi iOS](https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/ios-app-architecture.md): 22 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/ios/pertanyaan-wawancara/swiftui-advanced