Какие плюсы и минусы MVI

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

Ответ

Плюсы MVI:
✔️ Однозначное состояние (Single Source of Truth)
✔️ Предсказуемость (все изменения через интенты)
✔️ Легко тестировать (чистые функции)
✔️ Хорошая масштабируемость
✔️ Нет дублирования состояний

Минусы MVI:
❌ Больше бойлерплейта (много классов)
❌ Крутая кривая обучения
❌ Избыточность для простых экранов
❌ Сложность с side-эффектами

Пример:

// State
data class LoginState(val isLoading: Boolean, val error: String?)

// Intent
sealed class LoginIntent {
    object Submit : LoginIntent()
    data class Error(val message: String) : LoginIntent()
}