Junior — Middle
Como você implementa o padrão arquitetônico MVVM ao desenvolver com UIKit?
sobes.tech IA
Resposta da IA
O padrão de arquitetura MVVM (Model-View-ViewModel) no UIKit é implementado através da separação de responsabilidades entre três componentes:
- Model — dados e lógica de negócio.
- View — elementos visuais da interface (UIView, UIViewController).
- ViewModel — intermediário que transforma os dados do modelo num formato adequado para exibição na View.
A implementação do MVVM no UIKit geralmente inclui:
- Criar um ViewModel que contenha propriedades e métodos para preparar os dados.
- O ViewController subscreve-se às mudanças no ViewModel (através de KVO, Combine, RxSwift ou delegados) e atualiza a UI.
- O ViewModel não contém referências à View, o que aumenta a testabilidade.
Exemplo de um ViewModel simplificado:
class UserViewModel {
var name: String
var onNameChanged: (() -> Void)?
private var user: User {
didSet {
name = user.name.uppercased()
onNameChanged?()
}
}
init(user: User) {
self.user = user
self.name = user.name.uppercased()
}
func updateName(_ newName: String) {
user.name = newName
}
}
No ViewController, subscrevemos onNameChanged e atualizamos a UI quando os dados mudam.