Вопрос исследует причины выбора MVI и возможные сложности.
MVI выбрали для:
Однозначного управления состоянием.
Упрощения отладки (логирование всех событий).
Проблемы:
Первоначальный оверхедад.
Иногда избыточность для простых экранов.
Детерминированность:
Состояние экрана всегда вычисляется из предыдущего + события.
Логирование:
Все Intent и State можно записывать в лог для отладки.
Пример:
// Понятный поток данных
event -> intent -> reduce -> new stateПроизводительность:
Частые копии State могут нагружать GC.
Порог входа:
Требует дисциплины у команды.
Вывод:
MVI – мощный инструмент, но не для всех проектов.