Sobes.tech
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:

  1. La création d’un ViewModel qui contient des propriétés et des méthodes pour préparer les données.
  2. Le ViewController s’abonne aux changements dans le ViewModel (via KVO, Combine, RxSwift ou délégués) et met à jour l’UI.
  3. 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.