Уловки вечеринки с RxJava, RxAndroid и Retrolambda

Все крутые ребята этим занимаются, почему нет?

«Пользователи ожидают данных в реальном времени. Они хотят свои твиты сейчас. Их заказ подтвержден сейчас. Как разработчик, вы требуете беспрепятственного обмена сообщениями. Вы действительно не хотите, чтобы вас заблокировали в ожидании результата ... Вы хотите, чтобы результат был передан вам, когда он будет готов, в любое время. Более того, при работе с большими наборами результатов вы хотите получать отдельные результаты по мере их готовности, потому что вы не хотите ждать, пока весь набор будет обработан, прежде чем вы увидите первый элемент в этом списке. У разработчиков есть множество инструментов для передачи данных, это просто. Разработчикам нужны инструменты, чтобы реагировать на отправленные данные.

Да будет свет… даже лучше… Реактивные расширения!

Описанный как «библиотека для создания асинхронных программ и программ на основе событий с использованием наблюдаемых последовательностей», она очень хорошо подходит для внедрения параллелизма и управления им с целью разгрузки. То есть одновременное выполнение заданного набора работ для освобождения текущего потока (обычно потока пользовательского интерфейса). Очень популярно это использовать для поддержки отзывчивого пользовательского интерфейса, что очень важно для удобного взаимодействия с пользователем на мобильных устройствах!

За последние пару месяцев я собрал несколько примеров использования, узнав, как их использовать, и решил поделиться ими ...

Просто помни:

Основными строительными блоками реактивного кода являются Наблюдаемые и Подписчики. Observable испускает элементы; Подписчик потребляет эти товары.

Импортируйте зависимости:

… и настройте ретроламбду:

Https://github.com/orfjackal/retrolambda

ОБНОВЛЕНИЕ: я написал небольшой учебник об очень простом способе настройки ретроламбды https://medium.com/@cesarmcferreira/retrolambda-on-android-191cc8151f85

Запустите свою IDE и давайте попробуем!

Некоторые люди предполагают, что, поскольку RxJava полностью посвящен «асинхронным последовательностям», по умолчанию все будет происходить в разных потоках, но это не так, поэтому не забудьте определить как .observeOn ( ) и. subscribeOn (). Первый определяет поток, в котором будет подписан Observer (поток, в котором данные будут получены после завершения), а последний создает новый Observable, который будет заставить вашу подписку происходить в потоке, полученном из указанного планировщика, а не в потоке, из которого вызывается subscribe () (основной поток Android, поток пользовательского интерфейса).

Бонус: модернизация

… + RxJava + RxAndroid + Retrolambda

Давайте посмотрим, как все они работают:

Довольно мило, правда?

Вот несколько дополнительных ссылок с полезной информацией:

Если у вас есть предложения, которые вы хотите видеть добавленными, спросите или создайте запрос на перенос в эту суть https://gist.github.com/cesarferreira/510aa2456dc0879f559f

Если у вас есть вопросы, напишите мне на @cesarmcferreira

Опубликовано в Startups, Wanderlust and Life Hacking

-