RxJava as a reactive framework

For some time, there was a standard library for reactive programming on Java platforms—namely RxJava 1.x (see https://github.com/ReactiveX/RxJava for more details). That library paved the way for reactive programming as we know it in the Java world today. At the moment, it is not the only library of this kind; we also have Akka Streams and Project Reactor. The latter is covered in detail in Chapter 4, Project Reactor - the Foundation for Reactive Apps. So, currently, we have a few options from which we may choose. Furthermore, RxJava itself has changed a lot with the release of version 2.x. However, to understand the most basic concepts of reactive programming and the reasoning behind them, we will be focusing on the most fundamental part of the RxJava only, on the API, which has not changed since the early versions of the library. All examples in this section should work fine with both RxJava 1.x and RxJava 2.x.

To enable simultaneous usage in one application classpath, RxJava 2.x and RxJava 1.x have different group IDs (io.reactivex.rxjava2 versus io.reactivex) and namespaces (io.reactivex versus rx).

Even though the end-of-life for RxJava 1.x was in March 2018, it is still used in a handful of libraries and applications, mainly because of long-standing, wide-spread adoption. The following article provides a good description of what was changed in RxJava 2.x in comparison to RxJava 1.x: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0.

The RxJava library is a Java VM implementation of Reactive Extensions (also known as ReactiveX). Reactive Extensions is a set of tools that allows imperative languages to work with data streams, regardless of a stream being synchronous or asynchronous. ReactiveX is often defined as a combination of the Observer pattern, the Iterator pattern, and functional programming. A good starting point to learn more about ReactiveX is at http://reactivex.io.

Reactive programming may seem to be difficult, especially when we are approaching it from the imperative world, but the main idea is actually straightforward. Here, we are going to learn the basics of RxJava as the most wide-spread reactive library to date. We are not going to dive into all of the details, but try to walk through all the vital concepts of reactive programming.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.60.62