Junior — Middle
Hogyan valósítja meg az MVVM architektúrát UIKit használata közben?
sobes.tech MI
Válasz az MI-től
A UIKit-ben az MVVM (Model-View-ViewModel) architektúrát három komponens közötti felelősségmegosztással valósítják meg:
- Model — adatok és üzleti logika.
- View — vizuális elemek (UIView, UIViewController).
- ViewModel — közvetítő, amely a modell adatait olyan formátumba alakítja, amely alkalmas a View megjelenítésére.
Az MVVM megvalósítása UIKit-ben általában a következőket tartalmazza:
- Létrehozunk egy ViewModel-t, amely tartalmazza az adatok előkészítéséhez szükséges tulajdonságokat és metódusokat.
- A ViewController feliratkozik a ViewModel változásaira (KVO, Combine, RxSwift vagy delegáltak segítségével), és frissíti a UI-t.
- A ViewModel nem tartalmaz hivatkozásokat a View-ra, ez növeli a tesztelhetőséget.
Egyszerűsített ViewModel példa:
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
}
}
A ViewController-ben feliratkozol az onNameChanged-re, és frissíted a UI-t az adatok változásakor.