Reactive programming is mentioned everywhere these days. It solves many common issues of imperative programming in an elegant way. Dozens of libraries are springing up, giving developers access to powerful tools that make their everyday development life easier. However, it can take time to learn how to wield these tools effectively as they are often difficult to understand and if used improperly they can sometimes do more harm than good.
These codelabs will first go through RxJava basics, in order to demonstrate the main concepts and common use-cases of the ReactiveX framework, as well as reactive programming in general. It should make RxJava and reactive programming much clearer to you and give you lots of ideas of when and where you might want to use it. Once you have seen what it can do, you won't want to go back to how you were programming before!
The advanced codelab will take you more into deep of reactive world, we will go into detail and we will discover more of its beauty, because its endless.
- Java 8 SDK
- IntelliJ (any edition) or any Java IDE you like
- Clone this repo (GitHub Desktop, SourceTree or
git clone https://github.com/jraska/RxJava-Codelab.git
) - Open it in IntelliJ or other IDE
- Try to run
SetupTest
from your IDE - Call for help if it doesn't work
- What is a stream? Observable contract
- How to create Observables
- Transformations
- Composing
- Error handling
- Schedulers
- Observable feat. Single, Maybe, Completable
- Hot/Cold Observables
- Backpressure - Observable vs. Flowable
- ConnectableObservables, Processors, Plugins, ...
- Other reactive libraries interoperability
- Testing Observables
- ReactiveX http://reactivex.io/intro.html I consider understanding the intro part the most essential thing to understand Rx.
- RxJava https://github.com/ReactiveX/RxJava
- All other relevant resources are linked on ReactiveX website.