# SwiftUI Advanced (iOS) > Layout protocol, preference keys, GeometryReader, matchedGeometryEffect, ViewBuilder - 22 questions d'entretien - Senior - [Questions d'entretien: iOS](https://sharpskill.dev/fr/technologies/ios/questions-entretien.md) ## 1. Qu'est-ce que le protocole Layout en SwiftUI ? **Réponse** Le protocole Layout permet de créer des conteneurs de vues personnalisés en définissant comment les sous-vues sont positionnées et dimensionnées. Il remplace les approches manuelles avec GeometryReader pour les layouts complexes, offrant une API déclarative et composable pour construire des arrangements de vues sophistiqués. ## 2. Comment implémenter un layout personnalisé en conformant au protocole Layout ? **Réponse** Implémenter Layout nécessite de définir deux méthodes principales : sizeThatFits qui retourne la taille totale du conteneur, et placeSubviews qui positionne chaque sous-vue en utilisant ses propositions de placement. Ces méthodes travaillent ensemble pour créer un système de layout cohérent et prévisible. ## 3. Quel est l'avantage principal d'utiliser le protocole Layout par rapport à GeometryReader ? **Réponse** Le protocole Layout offre une approche composable et réutilisable pour les layouts, tandis que GeometryReader impose souvent du code impératif dans chaque vue. Layout sépare la logique de disposition de la logique de rendu, améliorant la testabilité et la maintenabilité des composants. ## 19 questions supplémentaires disponibles - Comment passer des paramètres de configuration à un layout personnalisé ? - Quand utiliser GeometryReader plutôt que le protocole Layout ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien iOS - [Les bases de Swift](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-basics.md): 25 questions, Junior - [Essentiels du langage Swift](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-language-essentials.md): 15 questions, Junior - [Fondamentaux UIKit](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uikit-fundamentals.md): 18 questions, Junior - [Cycle de vie UIViewController](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uiviewcontroller-lifecycle.md): 20 questions, Junior - [UserDefaults & Keychain](https://sharpskill.dev/fr/technologies/ios/questions-entretien/userdefaults-keychain.md): 20 questions, Junior - [Cycle de vie de l'application](https://sharpskill.dev/fr/technologies/ios/questions-entretien/app-lifecycle.md): 20 questions, Junior - [Auto Layout & Constraints](https://sharpskill.dev/fr/technologies/ios/questions-entretien/auto-layout-constraints.md): 24 questions, Confirmé - [UITableView & UICollectionView](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uitableview-uicollectionview.md): 25 questions, Confirmé - [Les bases de SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-basics.md): 18 questions, Confirmé - [Gestion d'état SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-state-management.md): 22 questions, Confirmé - [Navigation SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-navigation.md): 18 questions, Confirmé - [Networking & URLSession](https://sharpskill.dev/fr/technologies/ios/questions-entretien/networking-urlsession.md): 20 questions, Confirmé - [Codable & Parsing JSON](https://sharpskill.dev/fr/technologies/ios/questions-entretien/codable-json-parsing.md): 20 questions, Confirmé - [Core Data](https://sharpskill.dev/fr/technologies/ios/questions-entretien/core-data.md): 22 questions, Confirmé - [Programmation orientée protocoles](https://sharpskill.dev/fr/technologies/ios/questions-entretien/protocol-oriented-programming.md): 20 questions, Confirmé - [Architecture MVVM](https://sharpskill.dev/fr/technologies/ios/questions-entretien/mvvm-architecture.md): 20 questions, Confirmé - [Notifications Push](https://sharpskill.dev/fr/technologies/ios/questions-entretien/push-notifications.md): 18 questions, Confirmé - [Tests unitaires & XCTest](https://sharpskill.dev/fr/technologies/ios/questions-entretien/unit-testing-xctest.md): 20 questions, Confirmé - [Tests d'interface utilisateur](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ui-testing.md): 18 questions, Confirmé - [Xcode & Système de build](https://sharpskill.dev/fr/technologies/ios/questions-entretien/xcode-build-system.md): 16 questions, Confirmé - [Swift Package Manager](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-package-manager.md): 16 questions, Confirmé - [Memory Management & ARC](https://sharpskill.dev/fr/technologies/ios/questions-entretien/memory-management-arc.md): 22 questions, Senior - [Combine Framework](https://sharpskill.dev/fr/technologies/ios/questions-entretien/combine-framework.md): 24 questions, Senior - [Concurrency & async/await](https://sharpskill.dev/fr/technologies/ios/questions-entretien/concurrency-async-await.md): 26 questions, Senior - [iOS Design Patterns](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ios-design-patterns.md): 24 questions, Senior - [Performance Optimization](https://sharpskill.dev/fr/technologies/ios/questions-entretien/performance-optimization.md): 22 questions, Senior - [Security & Encryption](https://sharpskill.dev/fr/technologies/ios/questions-entretien/security-encryption.md): 20 questions, Senior - [iOS Application Architecture](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ios-app-architecture.md): 22 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-advanced