Идея крайне проста:
👉 В
Composable экран передаем state в качестве параметра👉 Вторым параметром идет
EventManager👉 Получаем чистый UI, без бизнес логики и репозиториев
👉 В
@Preview передается замоканые данные, что так же удобно использовать при тестировании компонентов👉 Еще 1 большой плюс - упрощение внедрения скриншот тестирования
@Composable
fun ProfileScreen(
state: ProfileScreenState,
onEvent: (ProfileEvent) -> Unit
) {
// Screen data
}
@Preview
@Composable
private fun ProfileScreenPreview() = ProfileScreenContent(
state = ProfileScreenState(),
onEvent = {}
)
В комментариях подсказали, что у FlowMVI можно получить тоже самое из коробки