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 обично укључује:
- Креирање ViewModel-а који садржи својства и методе за припрему података.
- ViewController се претплаћује на промене у ViewModel-у (преко KVO, Combine, RxSwift или делегата) и ажурира UI.
- 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 када се подаци промене.