Junior — Middle
Comment implémentez-vous le modèle architectural MVVM lors du développement avec UIKit?
sobes.tech IA
Réponse de l'IA
Le modèle d’architecture MVVM (Model-View-ViewModel) dans UIKit est réalisé en séparant la responsabilité entre trois composants:
- Model — données et logique métier.
- View — éléments visuels de l’interface (UIView, UIViewController).
- ViewModel — intermédiaire qui transforme les données du modèle dans un format adapté à l’affichage dans la View.
La mise en œuvre de MVVM dans UIKit inclut généralement:
- La création d’un ViewModel qui contient des propriétés et des méthodes pour préparer les données.
- Le ViewController s’abonne aux changements dans le ViewModel (via KVO, Combine, RxSwift ou délégués) et met à jour l’UI.
- Le ViewModel ne contient pas de références à la View, ce qui améliore la testabilité.
Exemple d’un ViewModel simplifié:
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
}
}
Dans le ViewController, on s’abonne à onNameChanged et on met à jour l’UI lors du changement de données.