в простом виде, то у нас есть стейт, который обзёрвит вью, есть экшн, который обзёрвит вью модель
Но если взять что то посложнее, начинают возникать вопросы. У меня более сложная иерархия, но мне будет достаточно понимания более простого примера, а именно:
У нас есть активити, которая холдит 2 фрагмента. У каждого - своя вью модель, причём взаимодействия с одним фрагментом теоретически могут аффектить второй фрагмент, а какие то составляющие стейта второго фрагмента теоретически могут влиять на первый фрагмент.
Самый близкий пример - аудиоплеер, который в портретном режиме выглядит одним образом, в лендскейпе другим. Контролы на одном фрагменте, на другом обложка, тайтл. И там и там есть элементы контроля, например на первом кнопки, на втором жесты.
Как в таком случае будет выглядеть взаимодействие? Каждый фрагмент должен подписаться на экшны и стейт другого?
У меня была такая проблема когда начал работать с MVI. Я решил следующим образом. Делаем скоупы, в каждом своя модель итерируемого состояния (и не только), создаём скоупы руками, получаем статично где требуется, слушаем и изменяем. Если надо - закрываем.
Обсуждают сегодня