Sobes.tech
Junior — Middle

Model-Görünüm-Niyet (MVI) mimari deseninin özünü açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Model-View-Intent (MVI) mimarisi, sorumlulukların net bir şekilde ayrıldığı ve durum yönetiminin sağlandığı UI uygulamaları oluşturmak için kullanılır.

MVI’nin temel bileşenleri:

  • Model — uygulamanın durumunu temsil eder, genellikle değiştirilemez. UI için doğruluk kaynağıdır.
  • View — modelin durumunu gösterir ve kullanıcı olaylarını (niyetleri) gönderir.
  • Intent — kullanıcının niyetleri, durum değişikliği için eylemlere dönüştürülür.

MVI’de veri akışı genellikle şu şekilde görünür:

  1. Kullanıcı View ile etkileşime girer ve bir Intent oluşturur.
  2. Intent işlenir ve Model güncellenir.
  3. Model durumunu günceller.
  4. View, Model’deki değişikliklere abone olur ve UI’yi günceller.

Bu, tek yönlü veri akışını ve durumun öngörülebilirliğini sağlar, bu da testleri ve bakımı kolaylaştırır.

Swift'te örnek (basitleştirilmiş):

struct Model {
    var text: String
}

enum Intent {
    case updateText(String)
}

class ViewModel {
    private(set) var model = Model(text: "")

    func process(intent: Intent) {
        switch intent {
        case .updateText(let newText):
            model.text = newText
        }
    }
}

Burada, ViewModel bir Intent alır ve Model’i günceller, View ise Model’in mevcut durumunu gösterir.