Sobes.tech
Junior — Middle

UIKit bilan ishlab chiqishda MVVM arxitektura naqshini qanday amalga oshirasiz?

sobes.tech AI

AIdan javob

UIKit'da MVVM (Model-View-ViewModel) arxitektura naqshuni uchta komponent o'rtasida mas'uliyatlarni bo'lish orqali amalga oshiriladi:

  • Model — ma'lumotlar va biznes mantiq.
  • View — vizual elementlar (UIView, UIViewController).
  • ViewModel — vositachi bo'lib, modeldagi ma'lumotlarni Viewda ko'rsatishga qulay formatga aylantiradi.

UIKit'da MVVMni amalga oshirish odatda quyidagilarni o'z ichiga oladi:

  1. Ma'lumotlarni tayyorlash uchun xususiyatlar va metodlarni o'z ichiga olgan ViewModel yaratish.
  2. ViewController ViewModeldagi o'zgarishlarga (KVO, Combine, RxSwift yoki delegatlar orqali) obuna bo'ladi va UIni yangilaydi.
  3. ViewModel Viewga havolalarni o'z ichiga olmaydi, bu esa test qilish imkoniyatini oshiradi.

Soddalashtirilgan ViewModel misoli:

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

ViewControllerda onNameChanged ga obuna bo'lamiz va ma'lumotlar o'zgarganda UIni yangilaymiz.