state на весь экран. Когда он обновляется, весь экран перерисовывается. Вам не кажется что это плохо? На экране могут быть разные данные, они обновляются с разной скоростью. Страдает производительность. Получается правило 1 стейт на экран плохое.
для того чтобы это избежать, считают Diff
Там много всего веселого дающего по производительности. Особенно когда это всё оборачивается Rx'ом. На каждый чих создаётся хуйлиард объектов. Но как сказали выше - вьюху лучше по diff'ам обновлять.
Ну глобально да. Но во первых андроид и сам уже имеет что то диффать, во вторых можно маппить результат на view сущности и делать .distinct(), в третьих на практике это не такая уж и большая проблема. Ну либо использовать UI либы которые уже умеют делать такой дифф)😈
В самом крайнем случает можно использовать кеширующие обертки над view
Зачем один Стейт на экран? Если экран сложный, надо бить на несколько стейтов и несколько Вью
Обсуждают сегодня