Size: a a a

2018 April 27

AB

Anatoly Berchanov in RxPM
А можно ли юзать RxPm в паре с DataBinding?
источник

AB

Anatoly Berchanov in RxPM
К примеру вынести хотя бы сеты значений в xml, чтобы в Activity и Fragment было минимально логики и кода
источник

DG

Dmitriy Gorbunov in RxPM
Рекомендую не извращаться и использовать RxBinding.
источник

VC

Vova Chernyshov in RxPM
Dmitriy Gorbunov
Ребят с фрагментами или на кондукторе, вообще нет никакой разницы с точки зрения паттерна. Семпл кстати на фрагментах написан. Про чайлд пм-ки это совсем другая тема, надеюсь скоро найду время чтобы написать статью
я child-pm и имел ввиду, с фрагментами все понятно)
источник

IP

Ilya Pavlovskii in RxPM
@ber4anov databinding в основном для MVVM, тут же другое, здесь подробно расписаны различия и преимущества: https://habr.com/company/mobileup/blog/313538/
источник

AB

Anatoly Berchanov in RxPM
спс
источник

VC

Vasili Chyrvon in RxPM
Автоматический датабиндинг это собственно то, что отличает MVVM  от PM. И то, почему мы делели эту либу. Датабиндинг не дает сделать все одним путем, и в итоге одно идет через него, остальное напрямую в вьюмодель через какой-то интерфейс. Поэтому и не используем его, поэтому и в либе выбран подход когорый хоть чуть ручной, зато одинаковый для всего.
источник

VC

Vasili Chyrvon in RxPM
Но по итогу, со всеми плюшками либы, разница в этом "ручном" подходе с Rx и тем, что дает databinding с xml только и остается в том, что мы юзаем Rx, а не пишем в xml ;)
источник

NY

Nikita Yatskivskiy in RxPM
Парни, подскажите, пожалуйста по старому сэмплу https://habr.com/company/mobileup/blog/326962/ - тут, как и в библиотеке используется RxRelay. У меня вопрос - почему?)))
Предположим, что у нас приходит исключение - как здесь https://pastebin.com/b5yznGDd - это код из https://github.com/dmdevgo/RxPM-Demo/blob/master/app/src/main/kotlin/me/dmdev/rxpm/demo/TextSearchPresentationModel.kt . Я добавил map, в котором бросаю исключение (имитируем ситуацию, при которой у нас ошибка происходит). И в итоге приложение падает с onErrorNotimplementedException. Думал, что RxRelay просто игнорирует исключения. Разве нет?
источник

NY

Nikita Yatskivskiy in RxPM
Если реализую onError - то ошибка обрабатывается, но при этом Relay перестаёт объекты эмитить - как и обычный Subject.
источник

DT

Denis Tkachenko in RxPM
для того, что б после ошибки relay дальше работал вроде нужно поставть retry() перед подпиской
источник

NY

Nikita Yatskivskiy in RxPM
Именно rxrelay вот так с помощью retry будет переподписываться? А subject уже нет?
источник

DT

Denis Tkachenko in RxPM
subject вроде нет
источник

KK

Konstantin Kulikov in RxPM
subject умирает ведь сразу
источник

KK

Konstantin Kulikov in RxPM
А relay переподписывается после onError
источник

NY

Nikita Yatskivskiy in RxPM
Плохо, что при вызове retry onError и doOnError игнорируются (
источник

KK

Konstantin Kulikov in RxPM
Nikita Yatskivskiy
Плохо, что при вызове retry onError и doOnError игнорируются (
Они не игнорируются, если их объявить перед retry
источник

NY

Nikita Yatskivskiy in RxPM
Konstantin Kulikov
Они не игнорируются, если их объявить перед retry
Слушай, всё огонь. Спасибо!
источник

KK

Konstantin Kulikov in RxPM
Можно так сделать
someClick.observable
           .flatMapSingle {
              someInteractor.execute()
                   .bindProgress(progress.consumer)
                   .doOnSuccess(someAction.consumer)
           }
           .doOnError { error ->
               Timber.e(error)
           }
           .retry()
           .subscribe()
           .untilDestroy()
источник

VC

Vasili Chyrvon in RxPM
Единственное отличие Relay от Subject это то, что Relay "проглатывает" error и complete. Это позволяет не боясь подписывать его на внешние штуки. Не боясь, что весь сабжект умрет. А ведь он возможно используется еще кем-то. Ретрай делается не для того, чтобы релюху/сабжект реаниминовать, а чтобы переподписать его на то внешнее, что кинуло ошибку.
источник