Что такое Action в MVI

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

Ответ

Action в MVI (Model-View-Intent) — это событие или намерение, инициированное пользователем или системой, которое изменяет состояние приложения. Оно передаётся в модель для обработки и обновления состояния.

Пример:

sealed class MainAction {
    object LoadData : MainAction()
    data class ShowData(val items: List<String>) : MainAction()
    data class Error(val message: String) : MainAction()
}

Actions должны быть неизменяемыми (immutable) и чёткими, чтобы гарантировать предсказуемость состояния. Они обрабатываются в редукторе (reducer), который генерирует новое состояние на основе предыдущего и текущего действия.