Sobes.tech
Junior — Middle

Pode descrever a sequência de ações do modelo na arquitetura MVI?

sobes.tech IA

Resposta da IA

Na arquitetura MVI (Model-View-Intent), o modelo é responsável por armazenar o estado e processar a lógica de negócio. A sequência de ações do modelo geralmente é a seguinte:

  1. Obter intenções (Intent) da View — ações ou eventos do utilizador.
  2. Processar essas intenções, executar a lógica de negócio e interagir com repositórios ou fontes de dados.
  3. Gerar um novo estado (State) com base no processamento.
  4. Enviar o estado atualizado de volta para a View para exibição.

Exemplo de ciclo simplificado:

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)
                // carregamento de dados
                state = state.copy(data = listOf("item1", "item2"), isLoading = false)
            }
            is Intent.Submit -> {
                // processamento da entrada
            }
        }
        return state
    }
}

Assim, o modelo é a única fonte de verdade para o estado da UI.