Book Image

Learning RxJava

By : Thomas Nield
Book Image

Learning RxJava

By: Thomas Nield

Overview of this book

RxJava is a library for composing asynchronous and event-based programs using Observable sequences for the JVM, allowing developers to build robust applications in less time. Learning RxJava addresses all the fundamentals of reactive programming to help readers write reactive code, as well as teach them an effective approach to designing and implementing reactive libraries and applications. Starting with a brief introduction to reactive programming concepts, there is an overview of Observables and Observers, the core components of RxJava, and how to combine different streams of data and events together. You will also learn simpler ways to achieve concurrency and remain highly performant, with no need for synchronization. Later on, we will leverage backpressure and other strategies to cope with rapidly-producing sources to prevent bottlenecks in your application. After covering custom operators, testing, and debugging, the book dives into hands-on examples using RxJava on Android as well as Kotlin.
Table of Contents (21 chapters)
Title Page
Credits
About the Author
Acknowledgements
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Chapter 5. Multicasting, Replaying, and Caching

We have seen the hot and cold Observable in action throughout this book, although most of our examples have been cold Observables (even ones using Observable.interval()). As a matter of fact, there are a lot of subtleties in the hotness and coldness of Observables, which we will look at in this chapter. When you have more than one Observer, the default behavior is to create a separate stream for each one. This may or may not be desirable, and we need to be aware of when to force an Observable to be hot by multicasting using a ConnectableObservable. We got a brief introduction to the ConnectableObservable in Chapter 2, Observables and Subscribers, but we will look at it in deeper context within an entire Observable chain of operators.

In this chapter, we will learn about multicasting with ConnectableObservable in detail and uncover its subtleties. We will also learn about replaying and caching, both of which multicast and leverage the ConnectableObservable...