Sobes.tech
Junior — Middle

Kā jūs īstenojat MVVM arhitektūras modeli, strādājot ar UIKit?

sobes.tech AI

Atbilde no AI

UIKit MVVM (Model-View-ViewModel) arhitektūras paraugs tiek īstenots, sadalot atbildību starp trim komponentiem:

  • Modelis — dati un biznesa loģika.
  • Skats — vizuālie elementi (UIView, UIViewController).
  • Skata modelis (ViewModel) — starpnieks, kas pārveido modeļa datus formātā, kas piemērots skata attēlošanai.

UIKit MVVM parasti ietver:

  1. Izveidot ViewModel, kas satur īpašības un metodes datu sagatavošanai.
  2. ViewController abonē izmaiņas ViewModel (izmantojot KVO, Combine, RxSwift vai delegātus) un atjauno UI.
  3. ViewModel nesatur atsauces uz skatu, kas uzlabo testējamību.

Vienkāršots ViewModel piemērs:

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

ViewController abonējas uz onNameChanged un atjauno UI, kad dati mainās.