Junior — Middle
Come implementi il pattern architetturale MVVM nello sviluppo con UIKit?
sobes.tech AI
Risposta dell'AI
Il pattern architetturale MVVM (Model-View-ViewModel) in UIKit viene implementato attraverso la separazione delle responsabilità tra tre componenti:
- Model — dati e logica di business.
- View — elementi visivi dell’interfaccia (UIView, UIViewController).
- ViewModel — intermediario che trasforma i dati del modello in un formato adatto alla visualizzazione nella View.
L’implementazione di MVVM in UIKit generalmente include:
- Creare un ViewModel che contiene proprietà e metodi per preparare i dati.
- Il ViewController si iscrive alle modifiche nel ViewModel (tramite KVO, Combine, RxSwift o delegati) e aggiorna l’UI.
- Il ViewModel non contiene riferimenti alla View, il che aumenta la testabilità.
Esempio di un ViewModel semplificato:
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
}
}
Nel ViewController, ci si iscrive a onNameChanged e si aggiorna l’UI quando i dati cambiano.