Sobes.tech
Junior — Middle

UIKit ilə inkişaf zamanı MVVM memarlıq nümunəsini necə həyata keçirirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

UIKit-də MVVM (Model-View-ViewModel) memarisi, üç komponent arasında məsuliyyətlərin bölünməsi ilə həyata keçirilir:

  • Model — məlumatlar və biznes məntiqi.
  • View — vizual interfeys elementləri (UIView, UIViewController).
  • ViewModel — vasitəçi, modeldən alınan məlumatları View-də göstərilməyə uyğun formata çevirir.

UIKit-də MVVM tətbiqi adətən aşağıdakıları əhatə edir:

  1. Məlumatların hazırlanması üçün xüsusiyyətlər və metodlar saxlayan ViewModel yaradılır.
  2. ViewController, ViewModel-dəki dəyişikliklərə (KVO, Combine, RxSwift və ya delegatlar vasitəsilə) abunə olur və UI-ni yeniləyir.
  3. ViewModel View-ə istinad etmir, bu da test edilə bilmə qabiliyyətini artırır.

Sadələşdirilmiş ViewModel nümunəsi:

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-də onNameChanged-ə abunə oluruq və məlumatlar dəyişdikdə UI-ni yeniləyirik.