# Arquitetura MVVM (iOS) > MVVM pattern, ViewModel, data binding, separation of concerns, testabilidade - 20 perguntas de entrevista - Mid-Level - [Perguntas de entrevista: iOS](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista.md) ## 1. O que é um ViewModel na arquitetura MVVM? **Resposta** O ViewModel encapsula a lógica de negócio e gerencia o estado da view de forma independente do UIKit ou SwiftUI. Ele faz a ponte entre as camadas Model e View mantendo uma separação clara de responsabilidades. Essa arquitetura facilita os testes unitários e melhora a manutenibilidade e a reutilização do código. ## 2. Quais são as principais responsabilidades do Model no MVVM? **Resposta** O Model representa os dados e a lógica de negócio da aplicação. Ele define as estruturas de dados, aplica as regras de negócio e permanece independente das camadas View e ViewModel. A independência do Model em relação aos frameworks de UI garante reutilização e testabilidade. Ele é a fonte única de verdade dos dados da aplicação. ## 3. Qual é o papel principal da View em uma arquitetura MVVM? **Resposta** A View é responsável por exibir os dados e capturar as interações do usuário. Ela deve conter apenas código de apresentação e evitar a lógica de negócio. A View se conecta ao ViewModel por meio de data binding para permanecer simples e testável. No SwiftUI, use @ObservedObject ou @StateObject para observar o ViewModel. No UIKit, use Combine para se inscrever nas mudanças. ## Mais 17 perguntas disponiveis - O que é data binding no contexto do MVVM? - Qual é a diferença entre @Published e @ObservedObject no SwiftUI? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista iOS - [Fundamentos de Swift](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-basics.md): 25 perguntas, Junior - [Fundamentos da linguagem Swift](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-language-essentials.md): 15 perguntas, Junior - [Fundamentos do UIKit](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uikit-fundamentals.md): 18 perguntas, Junior - [Ciclo de vida do UIViewController](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uiviewcontroller-lifecycle.md): 20 perguntas, Junior - [UserDefaults & Keychain](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/userdefaults-keychain.md): 20 perguntas, Junior - [Ciclo de vida do aplicativo](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/app-lifecycle.md): 20 perguntas, Junior - [Auto Layout & Constraints](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/auto-layout-constraints.md): 24 perguntas, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uitableview-uicollectionview.md): 25 perguntas, Mid-Level - [Fundamentos de SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-basics.md): 18 perguntas, Mid-Level - [Gerenciamento de estado no SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-state-management.md): 22 perguntas, Mid-Level - [Navegação SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-navigation.md): 18 perguntas, Mid-Level - [Networking & URLSession](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/networking-urlsession.md): 20 perguntas, Mid-Level - [Codable e parsing JSON](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/codable-json-parsing.md): 20 perguntas, Mid-Level - [Core Data](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/core-data.md): 22 perguntas, Mid-Level - [Programação orientada a protocolos](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/protocol-oriented-programming.md): 20 perguntas, Mid-Level - [Notificações Push](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/push-notifications.md): 18 perguntas, Mid-Level - [Testes unitários & XCTest](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/unit-testing-xctest.md): 20 perguntas, Mid-Level - [Testes de interface de usuário](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ui-testing.md): 18 perguntas, Mid-Level - [Xcode e sistema de build](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/xcode-build-system.md): 16 perguntas, Mid-Level - [Swift Package Manager](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-package-manager.md): 16 perguntas, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/memory-management-arc.md): 22 perguntas, Senior - [Combine Framework](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/combine-framework.md): 24 perguntas, Senior - [Concurrency & async/await](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/concurrency-async-await.md): 26 perguntas, Senior - [iOS Design Patterns](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ios-design-patterns.md): 24 perguntas, Senior - [Otimização de desempenho](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/performance-optimization.md): 22 perguntas, Senior - [Segurança e criptografia](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/security-encryption.md): 20 perguntas, Senior - [SwiftUI Advanced](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-advanced.md): 22 perguntas, Senior - [Arquitetura de aplicativos iOS](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ios-app-architecture.md): 22 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/mvvm-architecture