Sobes.tech
Junior — Middle

Wie implementieren Sie das Architektur-Muster MVVM bei der Entwicklung mit UIKit?

sobes.tech KI

Antwort von AI

Das Architektur-Muster MVVM (Model-View-ViewModel) in UIKit wird durch die Trennung der Verantwortlichkeiten zwischen drei Komponenten umgesetzt:

  • Model — Daten und Geschäftslogik.
  • View — visuelle Elemente der Benutzeroberfläche (UIView, UIViewController).
  • ViewModel — Vermittler, der die Daten aus dem Modell in ein Format umwandelt, das für die Anzeige in der View geeignet ist.

Die Implementierung von MVVM in UIKit umfasst in der Regel:

  1. Erstellen eines ViewModels, das Eigenschaften und Methoden zur Datenvorbereitung enthält.
  2. Der ViewController abonniert Änderungen im ViewModel (über KVO, Combine, RxSwift oder Delegates) und aktualisiert die UI.
  3. Das ViewModel enthält keine Referenzen auf die View, was die Testbarkeit erhöht.

Beispiel für ein vereinfachtes 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
    }
}

Im ViewController abonnieren wir uns auf onNameChanged und aktualisieren die UI bei Datenänderungen.