Sobes.tech
Junior — Middle

Jak implementujete architektonický vzor MVVM při vývoji s UIKit?

sobes.tech AI

Odpověď od AI

V UIKit je architektonický vzor MVVM (Model-View-ViewModel) realizován rozdělením odpovědnosti mezi tři komponenty:

  • Model — data a obchodní logika.
  • View — vizuální prvky rozhraní (UIView, UIViewController).
  • ViewModel — prostředník, který převádí data z modelu do formátu vhodného pro zobrazení ve View.

Implementace MVVM v UIKit obvykle zahrnuje:

  1. Vytvoření ViewModelu, který obsahuje vlastnosti a metody pro přípravu dat.
  2. ViewController se přihlásí k změnám ve ViewModelu (přes KVO, Combine, RxSwift nebo delegáty) a aktualizuje UI.
  3. ViewModel neobsahuje odkazy na View, což zvyšuje testovatelnost.

Příklad zjednodušeného ViewModelu:

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

V ViewController se přihlásíte k onNameChanged a aktualizujete UI při změně dat.