Junior — Middle
Jak implementujete architektonický vzor MVVM při vývoji s UIKit?
sobes.tech AI
Odpověď od AI
V UIKit je architektonický vzor MVVM (Model-View-ViewModel) realizován rozdělením odpovědnosti mezi tři komponenty:
- Model — data a obchodní logika.
- View — vizuální prvky rozhraní (UIView, UIViewController).
- ViewModel — prostředník, který převádí data z modelu do formátu vhodného pro zobrazení ve View.
Implementace MVVM v UIKit obvykle zahrnuje:
- Vytvoření ViewModelu, který obsahuje vlastnosti a metody pro přípravu dat.
- ViewController se přihlásí k změnám ve ViewModelu (přes KVO, Combine, RxSwift nebo delegáty) a aktualizuje UI.
- ViewModel neobsahuje odkazy na View, což zvyšuje testovatelnost.
Příklad zjednodušeného ViewModelu:
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 se přihlásíte k onNameChanged a aktualizujete UI při změně dat.