Size: a a a

Android Architecture

2021 August 02

Y

Yanis in Android Architecture
компоуз уже в релизе, можно начинать переходить
источник

A

Aleksei in Android Architecture
юзер поставил птичку - в ВМ улетел новый стейт с проставленной птичкой. На этот стейт вы подписаны в активити и смотрите - если такая-то конфигурация стейта теперь, то  нужно снять птичку с первого, или не трогать ничего
источник

JF

Jorik Fat in Android Architecture
Вы по сути тоже предлагаете фильтрацию в адаптере?
источник

A

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

JF

Jorik Fat in Android Architecture
в mvp это можно реализовать через метод точечного изменения. Хотя наверное можно и в MVVM LiveEvent кидать в UI, чтобы не было логики фильтрации в UI
источник

АЕ

Алексей Ершов... in Android Architecture
я бы из VM прокидывал стейт, а на UI ручками бы обновлял до нужных значений. Если изменилась структура - новые свичи добавились или старые удалились - просто их заново насоздавать. Если это происходит редко, не будет проблем с производительностью. Есть ощущение, что это не та задача, вокруг которой надо городить сложные diff-ы)
источник

JF

Jorik Fat in Android Architecture
т.е. Вы тоже за дифы в адаптере?
источник

Y

Yanis in Android Architecture
факт в том что проверять нужно на UI, а как вы реализуете это ваше дело
источник

АЕ

Алексей Ершов... in Android Architecture
адаптер это для recycler или ваш собственный термин?
источник

Y

Yanis in Android Architecture
это я привел как пример
источник

АЕ

Алексей Ершов... in Android Architecture
я за самое простое решение задачи) Если не нужны диффы - не надо, если нужны - им место как можно ближе к UI, потому что они как в Композе в UI, так и в ресайклере в UI. Если нужны диффы вообще везде на любой стейт - надо делать промежуточное звено между UI и VM, но мне кажется что это оверкилл.
источник

Y

Yanis in Android Architecture
тут товарищ @FatJorik скорей хочет узнать как в MVVM реализовать one-time event
но он совсем забывает про восстановление экрана, с таким подходом все равно придется обновлять некий стейт и отправлять его на отрисовку
источник

JF

Jorik Fat in Android Architecture
я не хочу при каждом изменении перерисовывать весь стейт, и не хочу писать дифы
источник

JF

Jorik Fat in Android Architecture
мне понравился подход, который тут предлагали. Брать ViewState и его отрисовывать при создании View, но не подписываться на его полное изменение, а изменять его точечно
источник

JF

Jorik Fat in Android Architecture
т.е. при onStart() брать последнее состояние всех Switch'ей, а при изменении одного - менять только его
источник

Y

Yanis in Android Architecture
т.е. где-то придется менять стейт + посылать точечные евенты?
источник

JF

Jorik Fat in Android Architecture
стейт будет меняться в любом случае. И при его изменении посылать точечные изменения
источник

JF

Jorik Fat in Android Architecture
приводился пример текстового редактора
источник

JF

Jorik Fat in Android Architecture
Когда при вводе каждого символа приходилось перерисовывать весь EditText
источник

Y

Yanis in Android Architecture
ну т.е. кто-то будет всеравно знать о текущем стейте и при его изменении (дифф?) будет посылать евент на отрисовку одного элемента
источник