# Architettura MVVM (iOS) > MVVM pattern, ViewModel, data binding, separation of concerns, testabilità - 20 domande da colloquio - Mid-Level - [Domande da colloquio: iOS](https://sharpskill.dev/it/technologies/ios/domande-colloquio.md) ## 1. Cos'è un ViewModel nell'architettura MVVM? **Risposta** Il ViewModel incapsula la logica di business e gestisce lo stato della vista indipendentemente da UIKit o SwiftUI. Fa da ponte tra i livelli Model e View mantenendo una chiara separazione delle responsabilità. Questa architettura abilita gli unit test e migliora la manutenibilità e la riusabilità del codice. ## 2. Quali sono le responsabilità principali del Model in MVVM? **Risposta** Il Model rappresenta i dati e la logica di business dell'applicazione. Definisce le strutture dati, applica le regole di business e rimane indipendente dai livelli View e ViewModel. L'indipendenza del Model dai framework UI garantisce riusabilità e testabilità. Funge da unica fonte di verità per i dati dell'applicazione. ## 3. Qual è il ruolo principale della View in un'architettura MVVM? **Risposta** La View è responsabile della visualizzazione dei dati e della cattura delle interazioni utente. Deve contenere solo codice di presentazione ed evitare la logica di business. La View si lega al ViewModel tramite data binding per rimanere semplice e testabile. In SwiftUI, usa @ObservedObject o @StateObject per osservare il ViewModel. In UIKit, usa Combine per sottoscrivere i cambiamenti. ## Altre 17 domande disponibili - Cos'è il data binding nel contesto di MVVM? - Qual è la differenza tra @Published e @ObservedObject in SwiftUI? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio iOS - [Fondamenti di Swift](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swift-basics.md): 25 domande, Junior - [Fondamenti del linguaggio Swift](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swift-language-essentials.md): 15 domande, Junior - [Fondamenti di UIKit](https://sharpskill.dev/it/technologies/ios/domande-colloquio/uikit-fundamentals.md): 18 domande, Junior - [Ciclo di vita di UIViewController](https://sharpskill.dev/it/technologies/ios/domande-colloquio/uiviewcontroller-lifecycle.md): 20 domande, Junior - [UserDefaults & Keychain](https://sharpskill.dev/it/technologies/ios/domande-colloquio/userdefaults-keychain.md): 20 domande, Junior - [Ciclo di vita dell'applicazione](https://sharpskill.dev/it/technologies/ios/domande-colloquio/app-lifecycle.md): 20 domande, Junior - [Auto Layout & Constraints](https://sharpskill.dev/it/technologies/ios/domande-colloquio/auto-layout-constraints.md): 24 domande, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/it/technologies/ios/domande-colloquio/uitableview-uicollectionview.md): 25 domande, Mid-Level - [Fondamenti di SwiftUI](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swiftui-basics.md): 18 domande, Mid-Level - [Gestione dello stato in SwiftUI](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swiftui-state-management.md): 22 domande, Mid-Level - [Navigazione SwiftUI](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swiftui-navigation.md): 18 domande, Mid-Level - [Networking & URLSession](https://sharpskill.dev/it/technologies/ios/domande-colloquio/networking-urlsession.md): 20 domande, Mid-Level - [Codable e parsing JSON](https://sharpskill.dev/it/technologies/ios/domande-colloquio/codable-json-parsing.md): 20 domande, Mid-Level - [Core Data](https://sharpskill.dev/it/technologies/ios/domande-colloquio/core-data.md): 22 domande, Mid-Level - [Programmazione orientata ai protocolli](https://sharpskill.dev/it/technologies/ios/domande-colloquio/protocol-oriented-programming.md): 20 domande, Mid-Level - [Notifiche Push](https://sharpskill.dev/it/technologies/ios/domande-colloquio/push-notifications.md): 18 domande, Mid-Level - [Test unitari & XCTest](https://sharpskill.dev/it/technologies/ios/domande-colloquio/unit-testing-xctest.md): 20 domande, Mid-Level - [Test dell'interfaccia utente](https://sharpskill.dev/it/technologies/ios/domande-colloquio/ui-testing.md): 18 domande, Mid-Level - [Xcode e sistema di build](https://sharpskill.dev/it/technologies/ios/domande-colloquio/xcode-build-system.md): 16 domande, Mid-Level - [Swift Package Manager](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swift-package-manager.md): 16 domande, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/it/technologies/ios/domande-colloquio/memory-management-arc.md): 22 domande, Senior - [Combine Framework](https://sharpskill.dev/it/technologies/ios/domande-colloquio/combine-framework.md): 24 domande, Senior - [Concurrency & async/await](https://sharpskill.dev/it/technologies/ios/domande-colloquio/concurrency-async-await.md): 26 domande, Senior - [iOS Design Patterns](https://sharpskill.dev/it/technologies/ios/domande-colloquio/ios-design-patterns.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/ios/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Sicurezza e crittografia](https://sharpskill.dev/it/technologies/ios/domande-colloquio/security-encryption.md): 20 domande, Senior - [SwiftUI Advanced](https://sharpskill.dev/it/technologies/ios/domande-colloquio/swiftui-advanced.md): 22 domande, Senior - [Architettura delle applicazioni iOS](https://sharpskill.dev/it/technologies/ios/domande-colloquio/ios-app-architecture.md): 22 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/ios/domande-colloquio/mvvm-architecture