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. By Florent Pillet, Junior Bontognali, Scott Gardner, Alex Sullivan & Marin Todorov.
Who is this for?
This book is for Android developers who already feel comfortable with the Android SDK and Kotlin, and want to dive deep into development with RxJava, RxKotlin, and RxAndroid.
Covered concepts
- Getting Started
- Event Management
- Being Selective
- UI Development
- Intermediate Topics: reactive networking, error handling and schedulers
- Advanced Topics: app architecture, repositories and integrating RxJava with Android Jetpack
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...
moreBefore You Begin
This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.
Section I: Getting Started with RxJava
In this part of the book, you’re going to learn about the basics of RxJava. You are going to have a look at what kinds of asynchronous programming problems RxJava addresses, and what kind of solutions it offers.
Further, you will learn about the few basic classes that allow you to create and observe event sequences, which are the foundation of the Rx framework.
You are going to start slow by learning about the basics and a little bit of theory. Please don’t skip these chapters! This will allow you to make good progress in the following sections when things get more complex.
Section II: Operators & Best Practices
Operators are the building blocks of Rx, which you can use to transform, process, and react to events emitted by Observables.
Just as you can combine simple arithmetic operators like +, -, and / to create complex math expressions, you can chain and compose together Rx’s simple operators to express complex app logic.
In this chapter, you are going to:
- Start by looking into filtering operators, which allow you to process some events but ignore others.
- Move on to transforming operators, which allow you to create and express complex data transformations. You can for example start with a button event, transform that into some kind of input, process that and return some output to show in the app UI.
- Look into combining operators, which allow for powerful composition of most other operators.
- Explore operators that allow you to do time based processing: delaying events, grouping events over periods of time, and more. Work though all the chapters, and by the end of this section you’ll be able to write simple RxJava apps!
Section III: Intermediate RxJava
Once you start writing complete apps with RxJava, you will also need to take care of more intermediate topics than simply observing for events and processing them with Rx.
In a full production-quality app, you will need to build an error handling strategy, do more advanced multi-threading processing, create a solid test suite, and more.
In this part of the book, you will work through five challenging chapters, which will lift your Rx status from a rookie level to a battle-tested warrior.
Section IV: RxJava Community Cookbook
RxJava’s popularity keeps growing every day. Thanks to the friendly and creative community that formed around this library, a lot of community-driven Rx projects are being released on GitHub.
The advantage of the community-built libraries that use RxJava is that unlike the main repository, which needs to follow the Rx standard, these libraries can afford to experiment and explore different approaches, provide non multi-platform specializations, and more.
In this section you are going to look into just a few of the many community open source projects. The section contains four short cookbook-style chapters that look briefly into four community projects that help you with binding Android Views, talking to your server with Retrofit, persisting preferences data, and handling user permissions.
Section V: Putting It All Together
The “easy” part of the book is over. If you made it this far and are looking to learn even more in order to start creating production apps with RxJava, this section is for you.
The two chapters in this section are going to help you learn how to build real-life applications with RxJava.
The first chapter will cover integrating RxJava with the components of Android Jetpack, in particular, the Room database library and the Paging library. The chapter will build off of knowledge you’ve gained earlier in the book working with the ViewModel and LiveData components of Jetpack.
The second chapter, and the last one in this book, is going to show you how to setup a reactive application architecture and how to convert callbacks to Rx Observables.
Once you finish working through this section, you will be one of the top RxJava developers out there. There is, of course, more to know about Rx but at this point you will be able to figure out things further on your own.
Also, don’t forget to give back to the community! It would not have been possible for us to put this book together without all the amazing Rx folks sharing their knowledge, code, and good vibes.