Junior — Middle
Kaip įgyvendinate architektūros modelį MVVM dirbdami su UIKit?
sobes.tech AI
Atsakymas iš AI
UIKit'e MVVM (Model-View-ViewModel) architektūros šablonas įgyvendinamas per atsakomybės pasidalijimą tarp trijų komponentų:
- Modelis — duomenys ir verslo logika.
- Vaizdas — vizualūs sąsajos elementai (UIView, UIViewController).
- ViewModel — tarpininkas, kuris paverčia modelio duomenis į formatą, tinkamą vaizdui rodyti.
UIKit'e MVVM įgyvendinimas paprastai apima:
- Sukurti ViewModel, kuris turi savybes ir metodus duomenų paruošimui.
- ViewController prenumeruoja pokyčius ViewModel (naudodamas KVO, Combine, RxSwift ar delegatus) ir atnaujina UI.
- ViewModel neturi nuorodų į View, kas padidina testuojamumą.
Supaprastintas ViewModel pavyzdys:
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
}
}
ViewController'yje prenumeruojate onNameChanged ir atnaujinate UI, kai duomenys keičiasi.