MVVM на Android с DataBinding или RxJava?

Я создаю приложение для Android и довольно новичок в концепциях MVVM и привязки данных на Android.

Я читал в нескольких местах (например, здесь), что как RxJava, так и библиотека DataBinding от Google могут быть используется для реализации шаблона MVVM.

Я просмотрел официальную документацию Android для DataBinding и просматриваю проект на который ссылается Google на Mvvm с помощью DataBinding. Однако я пока не знаю, как работает RxJava, что может быть очевидно из вопроса.

Мой вопрос: учитывая долгосрочные цели расширения моего приложения, стоит ли вкладывать усилия в изучение RxJava? Или DataBinding вполне может заменить его? Я совсем не знаком с RxJava, но, читая о нем в Интернете, у меня сложилось впечатление, что он может решить широкий спектр проблем.

Я не против потратить время на изучение RxJava, но стоит ли оно того, чтобы просто использовать привязку данных Google (в которой я немного разбираюсь)?


person Rajan Prasad    schedule 04.05.2017    source источник


Ответы (1)


RxJava — это совершенно другая концепция, чем DataBinding. Это скорее способ обработки параллелизма, чем привязка данных. Я 100% думаю, что это стоит учиться. Сообщество Android приняло его с распростертыми объятиями.

Бессовестная заглушка: некоторое время назад я составил список ресурсов RxJava — http://gregloesch.com/dev/2014/10/20/resources-for-learning-rxjava-android.html

person loeschg    schedule 04.05.2017
comment
Но в статье, на которую я ссылался, и в других местах в Интернете я читал, что ее можно использовать для привязки данных для целей MVVM. Вот что меня смутило. - person Rajan Prasad; 04.05.2017
comment
@ Raymond232, вы можете настроить его для привязки данных. Rx делает ваш код реактивным, поэтому вы можете структурировать вещи так, чтобы изменение чего-то вроде модели уведомляло всех подписчиков (скажем, представление является подписчиком) о том, что изменение было сделано. - person loeschg; 04.05.2017
comment
Спасибо. Кстати, как вы думаете, будет ли нормально прямо сейчас просто использовать библиотеку привязки данных Google для MVVM и пока отложить изучение RxJava? Потому что я просмотрел несколько ссылок, которые вы упомянули в своем блоге, и понял, что для правильного использования RxJava мне нужно будет уделить довольно много времени, чтобы понять его. - person Rajan Prasad; 06.05.2017
comment
@raymond да, отлично! Делайте то, что имеет смысл для вас/вашей команды прямо сейчас. Если у вас есть возможность, возможно, попробуйте еще раз позже. И если вы это сделаете, начните с малого, просто с сетевых вызовов или чего-то подобного. - person loeschg; 07.05.2017