If there is one domain that reactive programming has taken by storm, it is definitely mobile apps. As discussed throughout this book, ReactiveX is highly useful for many domains. But mobile apps are becoming increasingly complex, and users have a short tolerance for apps that are unresponsive, slow, or buggy. Therefore, mobile applications were quick to be early adopters of ReactiveX to solve these problems. RxSwift has quickly become popular on iOS after RxJava got a foothold on Android. There are also RxAndroid and RxBinding libraries to integrate RxJava easily with the Android environment, which we will cover in this chapter.
One of the pain points that Android developers have coped with for some time is being stuck with Java 6. This means that many of the widely used versions of Android (KitKat, Lollipop, and Marshmallow) do not support Java 8 lambdas (although...