Junior — Middle
Cum implementați pattern-ul arhitectural MVVM în timpul dezvoltării cu UIKit?
sobes.tech AI
Răspuns de la AI
Model-View-ViewModel (MVVM) în UIKit este implementat prin separarea responsabilităților între trei componente:
- Model — datele și logica de business.
- View — elementele vizuale ale interfeței (UIView, UIViewController).
- ViewModel — intermediarul care transformă datele din model într-un format potrivit pentru afișare în View.
Implementarea MVVM în UIKit include de obicei:
- Crearea unui ViewModel care conține proprietăți și metode pentru pregătirea datelor.
- ViewController se abonează la schimbările din ViewModel (prin KVO, Combine, RxSwift sau delegați) și actualizează UI-ul.
- ViewModel nu conține referințe către View, ceea ce crește testabilitatea.
Exemplu de ViewModel simplificat:
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
}
}
În ViewController, te abonezi la onNameChanged și actualizezi UI-ul când datele se schimbă.