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)

Schedulers


Schedulers are the easiest way to bring multi-threading into your apps. They are an important part of RxJava and they play perfectly along with Observables. They provide a handy way to create concurrent routines without having to deal with implementations, synchronizations, threading, platform limitations, and platform changes.

RxJava offers five kinds of Schedulers:

  • .io()

  • .computation()

  • .immediate()

  • .newThread()

  • .trampoline()

Let's take a look at them one by one.

Schedulers.io()

This Scheduler is meant for I/O operations. It's based on a thread pool that adjusts its size when necessary, growing or shrinking. This is the Scheduler we are going to use to fix the StrictMode violation we saw previously. As it's specific for I/O, it's not the default for any RxJava method; it's up to the developer to use it properly.

It's important to note that with the thread pool unbounded, a large amount of scheduled I/O operations will create a large amount of threads and memory usage. As always...