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)

First and last


The next figure shows how to create a sequence by emitting only the first element emitted by a source Observable sequence:

The first() and last() methods are quite easy to figure out. They emit only the first or last element emitted by Observable. Both of them can even get Func1 as a parameter: a predicate that can be used to decide the actual first or last element we are interested in.

The next figure shows how last() can be applied to a completed sequence to create a new Observable that emits only the last emitted element:

Both first() and last() come with a similar variant: firstOrDefault() and lastOrDefault(). These two functions come in handy when the Observable sequence completes without emitting any value. In this scenario, we can decide a default value to emit if the Observable didn't emit any.