Junior — Middle
Jak wdrażasz wzorzec architektoniczny MVVM podczas tworzenia z UIKit?
sobes.tech AI
Odpowiedź od AI
Wzorzec architektoniczny MVVM (Model-View-ViewModel) w UIKit realizuje się poprzez podział odpowiedzialności między trzema komponentami:
- Model — dane i logika biznesowa.
- View — elementy wizualne interfejsu (UIView, UIViewController).
- ViewModel — pośrednik, który przekształca dane z modelu w format odpowiedni do wyświetlenia w View.
Implementacja MVVM w UIKit zazwyczaj obejmuje:
- Tworzenie ViewModel, który zawiera właściwości i metody do przygotowania danych.
- ViewController subskrybuje zmiany w ViewModel (przez KVO, Combine, RxSwift lub delegaty) i aktualizuje UI.
- ViewModel nie zawiera odwołań do View, co zwiększa testowalność.
Przykład uproszczonego 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
}
}
W ViewController subskrybujemy onNameChanged i aktualizujemy UI przy zmianie danych.