Sobes.tech
Junior — Middle

Ako implementujete architektonický vzor MVVM pri vývoji s UIKit?

sobes.tech AI

Odpoveď od AI

Architektonický vzor MVVM (Model-View-ViewModel) v UIKit je realizovaný rozdelením zodpovedností medzi tri komponenty:

  • Model — údaje a obchodná logika.
  • View — vizuálne prvky rozhrania (UIView, UIViewController).
  • ViewModel — sprostredkovateľ, ktorý transformuje údaje z modelu do formátu vhodného na zobrazenie vo View.

Implementácia MVVM v UIKit zvyčajne zahŕňa:

  1. Vytvorenie ViewModel, ktorý obsahuje vlastnosti a metódy na prípravu údajov.
  2. ViewController sa prihlási na zmeny vo ViewModel (cez KVO, Combine, RxSwift alebo delegáty) a aktualizuje UI.
  3. ViewModel neobsahuje odkazy na View, čo zvyšuje testovateľnosť.

Príklad zjednodušeného 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
    }
}

V ViewController sa prihlásite na onNameChanged a aktualizujete UI pri zmene údajov.