Sobes.tech
Junior — Middle

Hogyan valósítja meg az MVVM architektúrát UIKit használata közben?

sobes.tech MI

Válasz az MI-től

A UIKit-ben az MVVM (Model-View-ViewModel) architektúrát három komponens közötti felelősségmegosztással valósítják meg:

  • Model — adatok és üzleti logika.
  • View — vizuális elemek (UIView, UIViewController).
  • ViewModel — közvetítő, amely a modell adatait olyan formátumba alakítja, amely alkalmas a View megjelenítésére.

Az MVVM megvalósítása UIKit-ben általában a következőket tartalmazza:

  1. Létrehozunk egy ViewModel-t, amely tartalmazza az adatok előkészítéséhez szükséges tulajdonságokat és metódusokat.
  2. A ViewController feliratkozik a ViewModel változásaira (KVO, Combine, RxSwift vagy delegáltak segítségével), és frissíti a UI-t.
  3. A ViewModel nem tartalmaz hivatkozásokat a View-ra, ez növeli a tesztelhetőséget.

Egyszerűsített ViewModel példa:

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
    }
}

A ViewController-ben feliratkozol az onNameChanged-re, és frissíted a UI-t az adatok változásakor.