Size: a a a

2019 April 07

DG

Dmitriy Gorbunov in RxPM
Leo
Спасибо за обновление, код выглядит окейно, но суть обновы вызывает вопросы) Это допускается обсуждать?)
Обсуждения и предложения только приветсвуются, нам нужен ваш фидбек
источник

L

Leo in RxPM
Мне кажется, не совсем правильно делать пм ответственным за биндинг. Я за то, чтобы вьюшки и механизм связывания были отдельными сущностями вне пм слоя, ибо у него другие задачи. Вдобавок (поправьте меня если я неправильно понял), привязаться к одному и тому же стейту двум вьюшкам с разными жц становится проблематично.
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Мне кажется, не совсем правильно делать пм ответственным за биндинг. Я за то, чтобы вьюшки и механизм связывания были отдельными сущностями вне пм слоя, ибо у него другие задачи. Вдобавок (поправьте меня если я неправильно понял), привязаться к одному и тому же стейту двум вьюшкам с разными жц становится проблематично.
Технически нет разницы кто за это отвечает, так как если пм-ка получила коллбэк Unbinded это значит что вьюха должна отвязаться от пм-ки. Гарантировать это во вью слое мы не можем. Второй момент это то, что чайлд-пм-ку можно детачить в любой момент и нужно автоматически отвязать все подписки на чайлд. Без привязки к ЖЦ конкретной пм-ки это реализовать не возможно.
Если нужно расширить границы привязки, то можно подписаться на observable стейта, но тогда нужно будет самостоятельно следить за подпиской. Это очень странный кейс, вопрос зачем?
источник

L

Leo in RxPM
Этот колбэк Unbinded - костыль для реализации всяких команд с буфером, вне контекста фрагмента или активити он не нужен, верно?
источник

L

Leo in RxPM
Слежение за активными вьюшками реализуется на уровне отдельных rx подписок (ну или LifecycleObserver как в гугле с LiveData)
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Этот колбэк Unbinded - костыль для реализации всяких команд с буфером, вне контекста фрагмента или активити он не нужен, верно?
Нет, не верно. Я говорю про ЖЦ пм-ки, если она получает событие UNBINDED - это значит что вьюха отвязывается от пм-ки (уходит в фон или дестроится). Например, пользователь свернул экран и нужно прекратить любое обновление UI в фоне.
источник

L

Leo in RxPM
Да, я именно это и имею в виду
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Да, я именно это и имею в виду
ну ЖЦ это не костыль)
источник

L

Leo in RxPM
Ну жц пмки - это onCreate/onDestroy, больше ей ничего не надо. Если ей нужно знать о том, свернуто приложение или нет - это отдельная фича) Я бы ее реализовывал через внедрение в конструктор какого-нибудь механизма оповещения об onPause/onResume. Я ооочень редко встречаю такой кейс, когда реально требуется в пмке пользоваться untilUnbind, потому считаю, что это не основополагающая штука.
источник

L

Leo in RxPM
А "костыль" - это я имел в виду, что вся суть этого эвента - придержать команду для вьюшки, чтобы она случайно не крашнулась на IllegalStateException)
источник

DG

Dmitriy Gorbunov in RxPM
Leo
А "костыль" - это я имел в виду, что вся суть этого эвента - придержать команду для вьюшки, чтобы она случайно не крашнулась на IllegalStateException)
основной кейс что вьюха умирает, IllegalStateException это только в случае транзакций фрагментов
источник

L

Leo in RxPM
Если вьюха умирает, то она описывается от стейта, команды или экшна, и мы это ловим без всяких unbind ивентов, разве нет?
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Если вьюха умирает, то она описывается от стейта, команды или экшна, и мы это ловим без всяких unbind ивентов, разве нет?
Во фрагменте без проблем, а вот во вьюхе нет onPause связанный с фрагментом. Есть колбек детача от окна, но он намного позже происходит
источник

DG

Dmitriy Gorbunov in RxPM
или не происходит если просто свернуть приложение
источник

L

Leo in RxPM
Вооот, в этом и прикол) Потому я и называю это костылем)
источник

L

Leo in RxPM
Я считаю, что надо завязываться на детач, а остальное опционально уже
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Я считаю, что надо завязываться на детач, а остальное опционально уже
Если просто свернуть приложение, то детача не происходит
источник

L

Leo in RxPM
Верно
источник

L

Leo in RxPM
Но ведь и делать-то обычно ничего не надо
источник

DG

Dmitriy Gorbunov in RxPM
Leo
Но ведь и делать-то обычно ничего не надо
нужно отписываться от стейтов, чтобы не обновлять UI в фоне, отписываться от команд чтобы не запускать анимацию или показывать тосты в фоне
источник