Откуда возвращается Intent во View в MVI

«Откуда возвращается Intent во View в MVI» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В MVI Intent возвращается из UI (View) в ViewModel (или Presenter), а не наоборот. Intent представляет намерение пользователя (например, клик, ввод текста), которое обрабатывается и преобразуется в State.

Пример:

// View
button.setOnClickListener { 
    viewModel.processIntent(Intent.ButtonClicked) 
}

// ViewModel
fun processIntent(intent: Intent) {
    when (intent) {
        is Intent.ButtonClicked -> updateState { ... }
    }
}

Обратно во View приходит только State для отображения. Intent — это односторонний поток от View к бизнес-логике.