Выбор ответа Middle Архитектура: MVVM, MVI, Clean спрашивают часто обновлено
Чем MVI отличается от MVVM
Вопрос
Какая черта отличает MVI от «классического» MVVM?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Один неизменяемый объект состояния, явные intents и переход через reducer. MVI формализует поток: действия описаны как sealed-иерархия, состояние экрана это один неизменяемый объект, новое состояние получается из старого функцией-редьюсером.
Варианты ответа
- В MVI нет ViewModel: состояние хранит сам Composable через remember
- MVI работает только с RxJava, потому что требует операторов scan и reduce
- Один неизменяемый объект состояния, явные intents и переход через reducerправильный ответ
- В MVVM нельзя использовать StateFlow, только LiveData с двусторонней привязкой
Разбор
MVI формализует поток: действия описаны как sealed-иерархия, состояние экрана это один неизменяемый объект, новое состояние получается из старого функцией-редьюсером. В «классическом» MVVM часто несколько независимых observable-полей. ViewModel в Android-реализациях MVI обычно остаётся как контейнер. MVI не привязан к RxJava, а MVVM прекрасно работает со StateFlow.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.