Sobes.tech
Junior — Middle

Tudná leírni a modell lépéseinek sorozatát az MVI architektúrában?

sobes.tech MI

Válasz az MI-től

Az MVI (Model-View-Intent) architektúrában a modell felelős az állapot tárolásáért és az üzleti logika feldolgozásáért. A modell műveleteinek sorrendje általában a következő:

  1. Szándékok (Intent) fogadása a nézetből — felhasználói műveletek vagy események.
  2. Ezeknek a szándékoknak a feldolgozása, az üzleti logika végrehajtása és a tárolókkal vagy adatforrásokkal való interakció.
  3. Új állapot (State) generálása a feldolgozás alapján.
  4. A frissített állapot visszaküldése a nézetnek a megjelenítéshez.

Egyszerűsített ciklus példája:

sealed class Intent {
    object LoadData : Intent()
    data class Submit(val input: String) : Intent()
}

data class State(val data: List<String>, val isLoading: Boolean)

class Model {
    private var state = State(emptyList(), false)

    fun process(intent: Intent): State {
        when (intent) {
            is Intent.LoadData -> {
                state = state.copy(isLoading = true)
                // adatok betöltése
                state = state.copy(data = listOf("item1", "item2"), isLoading = false)
            }
            is Intent.Submit -> {
                // bemenet feldolgozása
            }
        }
        return state
    }
}

Ezért a modell az egyetlen igazságforrás az UI állapotára.