Sobes.tech
Junior — Middle

Kako implementirate arhitektonski obrazac MVVM prilikom razvoja sa UIKit-om?

sobes.tech АИ

Одговор од АИ

Архитектурни образац MVVM (Model-View-ViewModel) у UIKit реализује се кроз раздвајање одговорности између три компонента:

  • Model — подаци и пословна логика.
  • View — визуелни елементи интерфејса (UIView, UIViewController).
  • ViewModel — посредник који трансформише податке из модела у формат погодан за приказ у View.

Реализација MVVM у UIKit обично укључује:

  1. Креирање ViewModel-а који садржи својства и методе за припрему података.
  2. ViewController се претплаћује на промене у ViewModel-у (преко KVO, Combine, RxSwift или делегата) и ажурира UI.
  3. ViewModel не садржи референце на View, што повећава тестираност.

Пример поједностављеног 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
    }
}

У ViewController-у се претплаћујете на onNameChanged и ажурирате UI када се подаци промене.