Book Image

RxJava Essentials

By : Ivan Morgillo
Book Image

RxJava Essentials

By: Ivan Morgillo

Overview of this book

<p>RxJava—Reactive Extensions for the JVM—is a library for composing asynchronous and event-based programs using Observable sequences for the Java VM, which will help you beat Android platform limitations to create astonishing Android apps.</p> <p>Starting with some quick background information on the Rx .NET library, this book quickly moves on to your first example. You will understand Observables and learn to filter, transform, or merge them in detail. Next, you will learn how to get rid of Threads, AsyncTasks, and Handlers with Schedulers to create a smooth user experience. Develop an easy, ready-to-go approach to REST API communications and enrich your skills by working with new challenging examples.</p> <p>By the end of the book, you will have explored the reactive programming world and will have created your first Android app without having to think about threading, networking, concurrency, and collection management.</p> <p>The images have been taken from&nbsp;<a href="http://reactivex.io/" target="_blank">http://reactivex.io/</a> which is licensed under a Create Commons 3.0 Attribution license (<a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">https://creativecommons.org/licenses/by/4.0/</a>)</p>
Table of Contents (15 chapters)

Zip


Dealing with multiple sources brings in a new possible scenario: receiving data from multiple Observables, processing them, and making them available as a new Observable sequence. RxJava has a specific method to accomplish this: zip() combines the value emitted by two or more Observables, transforms them according to a specified function Func*, and emits a new value. The following figure shows how the zip() method processes the emitted "numbers" and "letters" and makes them available as a new item:

For our real-world example, we are going to use our installed apps list and a new dynamic Observable to make the example a bit spicy:

Observable<Long> tictoc = Observable.interval(1, TimeUnit.SECONDS);

The tictoc Observable variable uses the interval() function to generate a Long item every second: simple but effective. As stated previously, we are going to need a Func object. It will be Func2 because we are going to pass two parameters to it:

private AppInfo updateTitle(AppInfoappInfo,...