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)

Join


The two previous methods, zip() and merge(), work in the domain of the emitted items. There are scenarios in which we have to also consider the time before deciding how to operate on values. RxJava's join() function combines items from two Observables, working with time windows.

To properly understand the previous figure, let's explain which parameters join() takes:

  • The second Observable to combine with the source Observable

  • A Func1 parameter that returns an Observable that specifies a time span defining the time window during which the item emitted by the source Observable will interact with the items from the second Observable

  • A Func1 parameter that returns an Observable that specifies a time span defining the time window during which the item emitted by the second Observable will interact with the items from the source Observable

  • A Func2 parameter that defines how the emitted items will be combined together to emit a new item

As a practical example, we can modify our loadList() function...