База знаний
RxJava
В последнее время очень многие восторгаются новым способом написания приложений, которое называют реактивным программированием. Докатилось и до Android. Попытаемся разобраться в этой теме.
Общая страница по реактивному программированию — http://reactivex.io/. Документация по классам здесь.
Домашняя страница на GitHub для RxJava — https://github.com/ReactiveX/RxJava.
Следует помнить, что компания Google официально не поддерживает это направление. Но некоторые программисты из компании используют реактивное программирование в своих собственных проектах. Один из них даже написал свой вариант библиотеки, схожий с RxJava, который использовался в одном из приложений Google.
С некоторых пор произошло разделение версии на две ветки: 1.x и 2.x.
Ветка 1.x была заморожена 1 июня 2017 (только исправления багов). 31 марта 2018 года ветку закроют. Я начинал изучать тему на основе 1.x-ветки, поэтому не удивляйтесь, если будут попадаться старые примеры для первой версии. Постараюсь явно предупреждать о подобных случаях, так как различия довольны значительны.
Подключаем RxJava.
// Старый способ
compile ‘io.reactivex:rxjava:1.2.7’
Для ветки 2.x имя пакета изменилось, чтобы не было конфликтов.
// Новый способ
compile ‘io.reactivex.rxjava2:rxjava:2.1.6’
Разница между двумя ветками описана на сайте документации. Общие фундаментальные понятия остались прежними.
Были переименованы или удалены некоторые виды классов Action и Function.
Subscriber переименован в Disposable. А также CompositeSubscription в CompositeDisposable.
В RxJava огромное количество страшных слов, которые следует выучить.