и PostProcessor
В MviCore Actor возвращает Observable<out Effect>, а в MviDroid Executor возвращает Disposable?, и имеет методы dispatch(Result) и publish(Label) для вывода
В MviDroid создание Сторов (Feature) делается только через MviStoreFactory, в MviCore в примерах используется наследование но можно и свою фабрику ввести.
В MviCore Feature реализует сразу Consumer<Wish> и ObservableSource<State>, для News есть отдельное поле news: ObservableSource<News>, в MviDroid просто метод accept(Intent) и два поля states: Observable<out State> и labels: Observable<out Label> (лучше ковариантность)
Time travel и логирование в MviDroid выполнены через оборачивание MviStoreFactory (можно создавать свои обёртки и внедряться в поведение компонентов Store), в MviCore через статический список Middleware, но зато можно записывать и воспроизводить любые события (не только из фичей/сторов).
В MviDroid есть встроенный парсинг рефлексией всех событий для их логирования, несколько уровней глубины и детализации: можно тыкнуть на любое событие в debug drawer и посмотреть его целиком в виде JSON
Спасибо!
Обсуждают сегодня