Shape Shape point chapter-list Group Group Group Group Group Shape Copy 12 Shape Shape Copy 3 Shape Shape dropdown editor editor Combined Shape grid Shape Copy 4 Shape Copy 7 Shape language language Shape megaphone paperback Shape platform noun_419259-2 copy play-icon Group BS-Question-Rounded-Circle quotes noun_610406 stacked-books-1 stacked-books-2 Group Group Group Group Group Group Group Group Group Path

Reactive Programming with Kotlin

$59.99 5/5 7 reviews · Write a Review
  • Platform Android 10
  • Language Kotlin 1.3
  • Editor Android Studio 4.0

The book that teaches you to use RxJava, RxAndroid and RxKotlin to create complex reactive applications on Android and exercise full control over the library to leverage the full power of reactive programming in your apps.

Developer Guide


For Intermediate Developers

Learn Reactive Programming in Kotlin with RxJava!

Not only will you learn how to use RxJava to create complex reactive applications on Android, you'll also see how to solve common application design issues by using RxJava, RxAndroid and RxKotlin. Finally, you'll discover how to exercise full control over the library and leverage the full power of reactive programming in your apps. Specifically, learn to handle asynchronous event sequences via two key concepts in Rx—Observables and Observers. Hone your UI development with RxJava and companion libraries to make it easy to work with the UI of your apps, providing a reactive approach to handling user events. Dig into both intermediate and advanced topics, such as error handling, schedulers, app architecture, repositories, and integrating RxJava with Android Jetpack.

Table of Contents

Section I: Getting Started with RxJava


Hello, RxJava!

Learn about the reactive programming paradigm and what RxJava can bring to your app.



Now that you’re ready to use RxJava and have learned some of the basic concepts, it’s time to play around with observables.



In this chapter, you’re going to learn about the different types of subjects in RxJava, see how to work with each one and why you might choose one over another based on some common use cases.


Observables & Subjects in Practice

In this chapter, you’ll use RxJava and your new observable super-powers to create an app that lets users to create nice photo collages — the reactive way.

Section II: Operators & Best Practices


Filtering Operators

This chapter will teach you about RxJava’s filtering operators that you can use to apply conditional constraints to “next” events, so that the subscriber only receives the elements it wants to deal with.


Filtering Operators in Practice

In the previous chapter, you began your introduction to the functional side of RxJava. In this chapter, you’re going to try using the filtering operators in a real-life app.


Transforming Operators

In this chapter, you’re going to learn about one of the most important categories of operators in RxJava: transforming operators.


Transforming Operators in Practice

In this chapter, you’ll take an existing app and add RxJava transforming operators as you learn more about map and flatMap, and in which situations you should use them in your code.


Combining Operators

This chapter will show you several different ways to assemble sequences, and how to combine the data within each sequence.


Combining Operators in Practice

You'll get an opportunity to try some of the most powerful RxJava operators. You'll learn to solve problems similar to those you'll face in your own applications.


Time-Based Operators

Managing the time dimension of your sequences is important. To learn about time-based operators, you'll practice with an animated app that visually demonstrates how data flows over time.

Section III: Intermediate RxJava


Error Handling in Practice

Even the best RxJava developers can’t avoid encountering errors. You’ll learn how to deal with errors, how to manage error recovery through retries, or just surrender yourself to the universe and letting the errors go.


Intro to Schedulers

This chapter will cover the beauty behind schedulers, where you’ll learn why the Rx abstraction is so powerful and why working with asynchronous programming is far less less painful than using locks or queues.


Flowables & Backpressure

Observables are very powerful, but what happens if a subscriber can't keep up with the next events? You'll see how to handle this situation using Flowables.


Testing RxJava Code

Testing your code is at the heart of writing good software— RxJava comes with lots of nifty tricks for testing everything under the sun.


Creating Custom Reactive Extensions

Beyond using the elements made available directly by RxJava, you can also create RxJava wrappers around existing non-Rx frameworks. You'll learn how to create and incorporate such wrappers into your reactive application.

Section IV: RxJava Community Cookbook



You'll learn how the extremely handy library RxBinding takes care of making reactive bindings for the Android View classes, and see how to use RxBinding in an app.



In earlier chapters, you've used Retrofit to add networking to your reactive apps. In this chapter, explore exactly how Retrofit interfaces with the Rx world and see how you can take advantage of all that it offers.



The RxPreferences library provides a reactive wrapper around SharedPreferences. In this chapter, you'll learn how the library works and how you can use it to effectively stream preference changes.



There's a fantastic library called RxPermissions that you'll use in this chapter to help alleviate the pain points of asking the user for permissions at runtime, giving you a reactive flow when requesting permissions.

Section V: Putting It All Together


RxJava & Jetpack

Android Jetpack is a suite of libraries provided by the Android team to make developing Android apps a breeze. You've already seen ViewModel and LiveData used with RxJava. In this chapter, you'll explore using the Room and Paging Library components from Jetpack in a reactive app.


Building a Complete RxJava App

To conclude this book, you’ll architect and code a small RxJava application. The goal is not to use Rx “at all costs”, but rather to make design decisions that lead to a tidy architecture with stable, predictable and modular behavior. The application is simple by design, to clearly present ideas you can use to architect your own applications.

Meet the Team

Average Rating

5 /5

Leave a review for this product

7 reviews

Reactive Programming with Kotlin

The book that teaches you to use RxJava, RxAndroid and RxKotlin to create complex reactive applications on Android and exercise full control over the library to leverage the full power of reactive programming in your apps.