Sobes.tech
Junior — Middle

UIKit kullanarak geliştirme yaparken MVVM mimari desenini nasıl uyguluyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

UIKit'te MVVM (Model-View-ViewModel) mimarisi, üç bileşen arasındaki sorumlulukların ayrılmasıyla gerçekleştirilir:

  • Model — veri ve iş mantığı.
  • View — görsel arayüz öğeleri (UIView, UIViewController).
  • ViewModel — modeli, View'da görüntülemeye uygun formata dönüştüren aracı.

UIKit'te MVVM uygulaması genellikle şunları içerir:

  1. Veri hazırlama özellikleri ve metodları içeren bir ViewModel oluşturmak.
  2. ViewController, ViewModel'daki değişikliklere abone olur (KVO, Combine, RxSwift veya delegeler aracılığıyla) ve UI'yi günceller.
  3. ViewModel, View'e referans içermez, bu da test edilebilirliği artırır.

Basitleştirilmiş bir ViewModel örneği:

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'da, onNameChanged'e abone olur ve veri değiştiğinde UI'yi güncellersiniz.