# Architecture MVVM (iOS) > MVVM pattern, ViewModel, data binding, separation of concerns, testabilité - 20 questions d'entretien - Confirmé - [Questions d'entretien: iOS](https://sharpskill.dev/fr/technologies/ios/questions-entretien.md) ## 1. Qu'est-ce qu'un ViewModel dans l'architecture MVVM ? **Réponse** Le ViewModel encapsule la logique métier et gère l'état de la vue sans dépendre de UIKit ou SwiftUI. Il établit un pont entre le Model et la View, permettant une séparation claire des responsabilités. Cette architecture facilite les tests unitaires et rend le code plus maintenable et réutilisable. ## 2. Quelles sont les responsabilités principales du Model dans MVVM ? **Réponse** Le Model représente les données et la logique métier de l'application. Il définit les structures de données, valide les règles métier et ne dépend pas des couches View ou ViewModel. Le Model doit rester indépendant du framework UI pour assurer la réutilisabilité et la testabilité. C'est la source de vérité des données applicatives. ## 3. Quel est le rôle principal de la View dans une architecture MVVM ? **Réponse** La View est responsable de l'affichage des données et de la capture des interactions utilisateur. Elle doit contenir uniquement le code de présentation et éviter la logique métier. La View se lie au ViewModel par le data binding pour rester simple et testable. En SwiftUI, utiliser @ObservedObject ou @StateObject pour observer le ViewModel. En UIKit, utiliser Combine pour souscrire aux changements. ## 17 questions supplémentaires disponibles - Qu'est-ce que le data binding dans le contexte MVVM ? - Quelle est la différence entre @Published et @ObservedObject en SwiftUI ? 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é - [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 - [SwiftUI Advanced](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-advanced.md): 22 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/mvvm-architecture