Sobes.tech
Junior — Middle

Můžete vysvětlit podstatu architektonického vzoru Model-View-Intent (MVI)?

sobes.tech AI

Odpověď od AI

Architektonický vzor Model-View-Intent (MVI) se používá pro vytváření UI aplikací s jasným rozdělením odpovědností a správou stavu.

Hlavní komponenty MVI:

  • Model — představuje stav aplikace, obvykle neměnný. Je zdrojem pravdy pro UI.
  • View — zobrazuje stav modelu a odesílá uživatelské události (záměry).
  • Intent — záměry uživatele, které jsou přeměněny na akce ke změně stavu.

V MVI data tok obvykle vypadá takto:

  1. Uživatel interaguje s View, generuje Intent.
  2. Intent je zpracován, což vyvolá aktualizaci Modelu.
  3. Model aktualizuje stav.
  4. View se přihlásí ke změnám v Modelu a aktualizuje UI.

Toto zajišťuje jednosměrný tok dat a předvídatelnost stavu, což usnadňuje testování a údržbu.

Příklad v Swift (zjednodušený):

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

Zde ViewModel přijímá Intent a aktualizuje Model, zatímco View zobrazuje aktuální stav Modelu.