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)

Creating an Observable from a list


In this example, we are going to introduce the from() function. With this particular "create" function, we can create an Observable from a list. The Observable will emit every element in the list, and we can subscribe to react to these emitted elements.

To achieve the same result of the first example, we are going to update our adapter on every onNext() function, adding the element and notifying the insertion.

We are going to reuse the same structure as the first example. The main difference is that we are not going to retrieve the installed applications' list. The list will be provided by an external entity:

mApps = ApplicationsList.getInstance().getList();

After obtaining the list, we only need to make it reactive and populate the RecyclerView item:

private void loadList(List<AppInfo> apps) {
    mRecyclerView.setVisibility(View.VISIBLE);

    Observable.from(apps)
            .subscribe(new Observer<AppInfo>() {
                @Override
    ...