Junior — Middle
Ako implementujete architektonický vzor MVVM pri vývoji s UIKit?
sobes.tech AI
Odpoveď od AI
Architektonický vzor MVVM (Model-View-ViewModel) v UIKit je realizovaný rozdelením zodpovedností medzi tri komponenty:
- Model — údaje a obchodná logika.
- View — vizuálne prvky rozhrania (UIView, UIViewController).
- ViewModel — sprostredkovateľ, ktorý transformuje údaje z modelu do formátu vhodného na zobrazenie vo View.
Implementácia MVVM v UIKit zvyčajne zahŕňa:
- Vytvorenie ViewModel, ktorý obsahuje vlastnosti a metódy na prípravu údajov.
- ViewController sa prihlási na zmeny vo ViewModel (cez KVO, Combine, RxSwift alebo delegáty) a aktualizuje UI.
- ViewModel neobsahuje odkazy na View, čo zvyšuje testovateľnosť.
Príklad zjednodušeného ViewModel:
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
}
}
V ViewController sa prihlásite na onNameChanged a aktualizujete UI pri zmene údajov.