Sobes.tech
Junior — Middle

Pode explicar a essência do padrão arquitetónico Model-View-Intent (MVI)?

sobes.tech IA

Resposta da IA

O padrão de arquitetura Model-View-Intent (MVI) é utilizado para construir aplicações de interface de utilizador com uma separação clara de responsabilidades e gestão do estado.

Componentes principais do MVI:

  • Model — representa o estado da aplicação, geralmente imutável. É a fonte da verdade para a UI.
  • View — exibe o estado do modelo e envia eventos de utilizador (intenções).
  • Intent — intenções do utilizador, que são transformadas em ações para alterar o estado.

No MVI, o fluxo de dados geralmente é assim:

  1. O utilizador interage com a View, gerando uma Intent.
  2. A Intent é processada, chamando a atualização do Model.
  3. O Model atualiza o estado.
  4. A View subscreve-se às mudanças no Model e atualiza a UI.

Isto garante um fluxo de dados unidirecional e previsibilidade do estado, facilitando testes e manutenção.

Exemplo em Swift (simplificado):

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

Aqui, o ViewModel recebe uma Intent e atualiza o Model, e a View exibe o estado atual do Model.