Size: a a a

Android Architecture

2020 February 21

(

( in Android Architecture
Плюс, как вы верно заметили, редьюс должен работать на Schedulers.single, и если редьюс работает ощутимо медленнее, чем приходят ивенты, юай будет выглядеть странно
источник

U

Unat in Android Architecture
(
Плюс, как вы верно заметили, редьюс должен работать на Schedulers.single, и если редьюс работает ощутимо медленнее, чем приходят ивенты, юай будет выглядеть странно
А как он у тебя окажется медленнее ивентов?
источник

(

( in Android Architecture
Не то чтобы будет проседать фпс, просто если обновления состояния приходят на 500-600 миллисекунд позже ивента, это заметно
источник

(

( in Android Architecture
Unat
А как он у тебя окажется медленнее ивентов?
Например, если ты там ещё будешь статик леяуты межурить 🌚
источник

U

Unat in Android Architecture
(
Например, если ты там ещё будешь статик леяуты межурить 🌚
Ну так не делай зла в редюсере, ну
источник

(

( in Android Architecture
Unat
Ну так не делай зла в редюсере, ну
Кто делает? Никто не делает
источник

I

Igor in Android Architecture
Алексей Ершов
В MVI явно прописан стейт, и это офигенно. А в MVP/MVVP мы фигачим какие-то события в View, и надеемся, что там оно как-нибудь нормально отобразится. Уровень детерминированности очень разный получается)
согласен про уровень детерминированности, но другие паттерны работают и все ок отображают, тут уже зависит от опыта программиста не отображать условно ошибку и вью одновременно
источник

АЕ

Алексей Ершов in Android Architecture
не понял
источник

I

Igor in Android Architecture
(
Придётся запариться с производительностью и крутить всякие странного вида вещи, чтобы подружить декларативный by-design рендер с императивным андроидом
можно на конкретном примере?
источник

U

Unat in Android Architecture
Igor
можно на конкретном примере?
Нельзя просто взять и отобразить стейт
источник

U

Unat in Android Architecture
Я, например, дроблю его на части при рендере, чтобы при изменении, например, заголовка, не перерисовать изображения
источник

I

Igor in Android Architecture
детерминированность скорее зависит не от паттерна, а от опыта программиста, понятно, что MVI как раз её четко ограничивает, а в MVVM и MVP ты её контролируешь сам
источник

АЕ

Алексей Ершов in Android Architecture
Igor
детерминированность скорее зависит не от паттерна, а от опыта программиста, понятно, что MVI как раз её четко ограничивает, а в MVVM и MVP ты её контролируешь сам
да, и получается, что если всё делать правильно и честно, MVP и MVVM оба превращаются в MVI :)
источник

U

Unat in Android Architecture
А ещё MVP и mvvm с большей вероятностью могут поймать гонку, но это уже сильно крайности
источник

(

( in Android Architecture
Igor
детерминированность скорее зависит не от паттерна, а от опыта программиста, понятно, что MVI как раз её четко ограничивает, а в MVVM и MVP ты её контролируешь сам
Простая математика. Юай - это машина Мура, в случае MVI - well-behaved, в случае МВП машина становится блэкбоксом, в который вы кидаете транзишены, надеясь, что он находится в правильном состоянии, чтобы по нему перейти
источник

(

( in Android Architecture
MVVM под вопросом, но лично меня этот паттерн вполне устраивает, особенно с каким-нибудь Lychee
источник

AA

Andrey Akimov in Android Architecture
(
Простая математика. Юай - это машина Мура, в случае MVI - well-behaved, в случае МВП машина становится блэкбоксом, в который вы кидаете транзишены, надеясь, что он находится в правильном состоянии, чтобы по нему перейти
а как в мвп может быть неправильное состояние?
з.ы. я понимаю о чем ты, я не могу представить такую ситуацию
источник

I

Igor in Android Architecture
Алексей Ершов
да, и получается, что если всё делать правильно и честно, MVP и MVVM оба превращаются в MVI :)
))) да MVI является неким логическим продолжением MVP MVVM))
источник

(

( in Android Architecture
Andrey Akimov
а как в мвп может быть неправильное состояние?
з.ы. я понимаю о чем ты, я не могу представить такую ситуацию
Так куча же примеров. Например, у вас на экране могут быть данные, прогрессбар и ошибка, из прогрессбара можно перейти в данные или в ошибку, из ошибки в прогрессбар, данные - конечное состояние
Ничего не защищает вас от попытки перехода, например, из ошибки в данные. Да, в мвиай это тоже на вашей совести, но вы хотя бы об этом знаете
источник

(

( in Android Architecture
Ну и пример конечно тривиальный, но наверняка нетрудно представить, насколько все становится хуже, когда состояния не три, а тридцать
источник