Size: a a a

2018 June 18

VC

Vova Chernyshov in RxPM
можна также сделать extension функцию и получить такую цепочку: pm.items.bindTo(adapter.dataChanges())
источник

RC

Roman Chernyak in RxPM
Vova Chernyshov
можна также сделать extension функцию и получить такую цепочку: pm.items.bindTo(adapter.dataChanges())
что делает dataChanges?
источник

VC

Vova Chernyshov in RxPM
у нас в проекте сетяться данные в адаптер и вызиваеться notifyDatasetChanged напрямую или через diffutils
источник

DG

Dmitriy Gorbunov in RxPM
Roman Chernyak
в данном конкретном случае я не вижу выигрышь, какая собственно разница где выйти из  rx во вью или в презентере и дернуть метод на вью
Большая разница, потому что нужно комбайнить UI-логику и данные из модели. Если мы обрываем цепочку в презентере, то переходим на императивный стиль программировани, что черевато спагетти-кодом. В rx же комбанийть логику (стейты и данные) одно удовольствие.
источник

RC

Roman Chernyak in RxPM
@Jeevuz помню твою статью в которой ты разбираешь минусы стандартного MVVM и упоминаешь то, что можно двумя способами воссоздавать стейт: через команды и через флаги. на практике воссоздание через команды мне видится удобнее. мне кажется или RxPM тяготеет к флагам, так как не создав Action соответствующий мы не получим нужное состояние вьюхи?
источник
2018 June 19

RC

Roman Chernyak in RxPM
Dmitriy Gorbunov
Большая разница, потому что нужно комбайнить UI-логику и данные из модели. Если мы обрываем цепочку в презентере, то переходим на императивный стиль программировани, что черевато спагетти-кодом. В rx же комбанийть логику (стейты и данные) одно удовольствие.
я одновременно и согласен и нет. это дело вкуса. иногда большая простыня простой логики лучше чем несколько строк на rx в которые с ходу не вьедешь. а бывает наоборот. конечно еще готовить надо уметь и то и другое
источник

VC

Vasili Chyrvon in RxPM
Roman Chernyak
@Jeevuz помню твою статью в которой ты разбираешь минусы стандартного MVVM и упоминаешь то, что можно двумя способами воссоздавать стейт: через команды и через флаги. на практике воссоздание через команды мне видится удобнее. мне кажется или RxPM тяготеет к флагам, так как не создав Action соответствующий мы не получим нужное состояние вьюхи?
Нет, Ром, RxPM это чистый Presentation Model паттерн.  У нас есть стейты. C ними работать просто и приятно. Это то, что сейчас "есть" на экране.
А восстановление состояния через команды это способ восстановить состояние если ты не можешь хранить состояние.
Та же самая аналогия с кубиком Рубика: Что тебе будет проще, делать 20 поворотов, чтобы получить стейт или просто взять с полки кубик уже в нужном стейте?
В общем то размышление было о мокси и том как там сделано, что это тоже вариант. Но идея стейтов в PM или ViewModel всегда было наиболее интересным для меня. Это то, почему я пробовал MVVM.
источник

VC

Vasili Chyrvon in RxPM
Roman Chernyak
я одновременно и согласен и нет. это дело вкуса. иногда большая простыня простой логики лучше чем несколько строк на rx в которые с ходу не вьедешь. а бывает наоборот. конечно еще готовить надо уметь и то и другое
Подведу итог того, что ребята писали.
В RxPM ты не рвешь цепочку, а переходы от Rx в императив делаешь там где они "должны" быть - на краях, то есть во вью и на другом крае в модели, а не на "полпути" в презентере.
источник

RC

Roman Chernyak in RxPM
но ведь стейт это не только то что отображается во вью? есть же еще стейт тех действий которые не завершились?
источник

VC

Vasili Chyrvon in RxPM
Команды - глянь про них в доке лучше.
источник

VC

Vasili Chyrvon in RxPM
Что не завершилось завершится, тк ПМ жива. А вью прибиндится и возьмет уже новое.
источник

VC

Vasili Chyrvon in RxPM
Я спать, продолжим завтра ;))))
источник

RC

Roman Chernyak in RxPM
все, я понял что меня смыщает в таком стейте
источник

RC

Roman Chernyak in RxPM
я напишу сейчас пока мысль жива, а ты спи ) спасибо
источник

RC

Roman Chernyak in RxPM
если я правильно понял PM хранит низкоуровневый стейт - то есть вот в этом контроле вот это, вот тут вот это. я не привык на уровне презентера уходить в эти детали. например презентер дал команду showLoginControls и вью сама значет что с этим делать, какие контролы скрыть какие показать. и вот таких команд сложный презентер может дать 5,6,10. и как мне это хранить в стейте в PM на таком же уровне абстракции? да, я могу следствие этих команд развернуть, но тогда эта логика переползет из вью в PM.
источник

RC

Roman Chernyak in RxPM
Vasili Chyrvon
Нет, Ром, RxPM это чистый Presentation Model паттерн.  У нас есть стейты. C ними работать просто и приятно. Это то, что сейчас "есть" на экране.
А восстановление состояния через команды это способ восстановить состояние если ты не можешь хранить состояние.
Та же самая аналогия с кубиком Рубика: Что тебе будет проще, делать 20 поворотов, чтобы получить стейт или просто взять с полки кубик уже в нужном стейте?
В общем то размышление было о мокси и том как там сделано, что это тоже вариант. Но идея стейтов в PM или ViewModel всегда было наиболее интересным для меня. Это то, почему я пробовал MVVM.
насчет кубика я не совсем понимаю твою анологию. вот есть в PM кубик и у меня есть кубик, новый. мне нужен такой же как в PM. причем новый до этого повернули всего два раза. и вот я могу переклеивать все 6 граней по 9 квадратиков, а могу  просто сделать теже 2 поворота. тут вопрос исключительно в количестве действий и их удобстве. для обоих вариантов можно привести такие примеры когда они будут удобнее и короче.
источник

RC

Roman Chernyak in RxPM
итого, понятно, что надо пробовать чтобы понять как будет выглядеть реальный а не синтетический стейт в сложном экране с кудрявой логикой
источник

RC

Roman Chernyak in RxPM
@Jeevuz ты можешь плз показать какой-то реальный пример такой PM?
источник

VC

Vasili Chyrvon in RxPM
Roman Chernyak
если я правильно понял PM хранит низкоуровневый стейт - то есть вот в этом контроле вот это, вот тут вот это. я не привык на уровне презентера уходить в эти детали. например презентер дал команду showLoginControls и вью сама значет что с этим делать, какие контролы скрыть какие показать. и вот таких команд сложный презентер может дать 5,6,10. и как мне это хранить в стейте в PM на таком же уровне абстракции? да, я могу следствие этих команд развернуть, но тогда эта логика переползет из вью в PM.
Ты что-то утрировал. Ты можешь так же сделать стейт в ПМ loginControlsVisible и уже во Вью настроить все виджеты. Ты не обязан делать стейт под каждый визибилити.
источник

VC

Vasili Chyrvon in RxPM
Roman Chernyak
насчет кубика я не совсем понимаю твою анологию. вот есть в PM кубик и у меня есть кубик, новый. мне нужен такой же как в PM. причем новый до этого повернули всего два раза. и вот я могу переклеивать все 6 граней по 9 квадратиков, а могу  просто сделать теже 2 поворота. тут вопрос исключительно в количестве действий и их удобстве. для обоих вариантов можно привести такие примеры когда они будут удобнее и короче.
Окей, изменю метафору. Что проще, записать телефон руками, записывая цифру за цифрой или сделать фото? Вот в случае со стейтами это фото. С действиями это вручную.
И да, тут есть случаи когда будет одинаково почти.
Когда я писал в статье про кубик, там и не было борьбы. Было просто представление двух методов.
источник