Size: a a a

2018 November 13

DG

Dmitriy Gorbunov in RxPM
Artem Kriger
Т.е. можно создать обёртку, которой можно было бы управлять отправкой нескольких экземпляров одного запроса? Подскажи с чего начать пжл
Прсто делаете реактивную мапу в пм-ке, где храните статусы запросов, например по id. При каждом изменении состояния кидаете в стейт, далее в адаптер и перерисовываете вьюхолдеры.
источник
2018 November 16

Z

Zakhar in RxPM
Как для inputControl'a сделать skipinitialvalue
источник

DG

Dmitriy Gorbunov in RxPM
Zakhar
Как для inputControl'a сделать skipinitialvalue
Без написания своего биндера никак. Можно не задавать начальное значение. Опишите свой кейс подробнее
источник

Z

Zakhar in RxPM
Да обычная валидация пароля/почты
источник

DG

Dmitriy Gorbunov in RxPM
Zakhar
Да обычная валидация пароля/почты
Можно форматтер задать
источник
2018 November 21

NY

Nikita Yatskivskiy in RxPM
Ребят, дайте совет) Я уже спрашивал что-то подбное, но в голове всё равно понимания полного нет. Вот есть у нас стейт со списком новостей State<List<News>>(). К нему по-правильному нужно привязываться в onStart(или в onBindPresentationModel) или в onCreateView(ну или в onViewCreated)?
источник

DT

Denis Tkachenko in RxPM
В onBindPresentationModel
источник

NY

Nikita Yatskivskiy in RxPM
Получается, что каждый раз, когда сворачивается приложение, а потом снова открывается, это список снова приходит в subscribe и передаётся адаптеру RecyclerView?
источник

DG

Dmitriy Gorbunov in RxPM
Nikita Yatskivskiy
Получается, что каждый раз, когда сворачивается приложение, а потом снова открывается, это список снова приходит в subscribe и передаётся адаптеру RecyclerView?
Да
источник

L

Leo in RxPM
Но ведь по идее никто не запрещает в onViewCreated дёрнуть пмку
источник

NY

Nikita Yatskivskiy in RxPM
А в адаптере вы уже DiffUtil’ом проверяете разницу в элементах и, если необходимо, обновляете список? Так, получается? Или просто notifyDataSetChanged?
источник

L

Leo in RxPM
Я юзаю DiffUtil, да
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Но ведь по идее никто не запрещает в onViewCreated дёрнуть пмку
Биндинг специально сделан так чтобы в фоне не отрисовывать стейт и избежать проблем с транзакциями фрагментов
источник

L

Leo in RxPM
Ну транзакции - это единственный нюанс про который надо помнить в таких случаях, как мне кажется.
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Но ведь по идее никто не запрещает в onViewCreated дёрнуть пмку
Тогда биндто нельзя использовать и отписываться нужно в onDestroyView
источник

DG

Dmitriy Gorbunov in RxPM
Nikita Yatskivskiy
А в адаптере вы уже DiffUtil’ом проверяете разницу в элементах и, если необходимо, обновляете список? Так, получается? Или просто notifyDataSetChanged?
Используем диффутил
источник

AR

Alexey Rybakov in RxPM
Присоединяюсь к вопросу. Только начал новый проект на RxPM, еще не успел полностью пощупать. До этого использовал Mosby MVP, там как раз attach презентера происходил на уровне onCreateView, т.е. при onStop onStart повторно данные не прилетали. Если исколючить fragment транзакции, с учетом, что у меня, фрагментов то и нет (Conductor), не лучше ли биндить PM в onCreateView? Ну или при использованнии фрагментов навигацию кидать через Cicerone, который не будет после onStop транзакции выполнять.
источник

L

Leo in RxPM
Если биндиться в onBindPresentationModel, то диффы гонять будем гарантированно каждый раз после возвращения, а если в onViewCreated, то все, что нам грозит - recyclerView перерисует маленькое подмножество и так уже закешированных вьюшек, и то всего один раз когда данные реально изменились
источник

L

Leo in RxPM
Мне кажется, в некоторых ситуациях вполне разумный трейдоф
источник

DG

Dmitriy Gorbunov in RxPM
Мы когда только проектировали либу, тоже думали что может быть биндинг перенести на onViewCreated и undind делать на onDestroyView. Но потом нашли множество критичных кейсов, почему так делать нельзя:
1) Транзакции фрагментов, это не только навигация, но и чайлд фрагменты и показ диалогов. Надеяться что все не будут использовать для этого либу - глупо. Решение должно быть общим.
2) Unbind является индикатором чтобы остановить фоновые задачи с таймерами и геолокацией и т п. Расширять и усложнять жизненный цикл и вводить Pause и Resume не хочется
3) В кондукторе есть фича, чтобы не убивать вьюху в бекстеке, в этом случае отрисовка будет в фоне постоянно, поэтому лучше биндить вьюху на onAttach/onDetach
источник