These days I tend to read blogs to catch up on the latest programming techniques, although I still read the occasional book. But every now and then I come across a book that is absolutely brilliant, one such as Reactive Programming with RxJava.
This is a great book for learning about RxJava as it goes way beyond just repeating the API and documentation. As well as the usual marble diagrams, the authors help you to take a peek under the hood to explain things like:
- Use cases about the why and when to use various RxJava constructs.
- Design decisions about why RxJava does things in certain ways.
- Comparison with non-Rx and alternative techniques to achieve asynchronous processing, e.g. imperative programming, Futures, manual threading, etc.
- Integration with existing legacy code and 3rd party libraries.
- The importance of flatMap operator for asynchronous processing as well as for flattening out nested Observables.
This just scratches the surface in terms of what this book offers, but these were particularly informative for me as a beginner/intermediate RxJava programmer.
The reason I put ‘so far’ in the title of this blog is that book documents RxJava 1, and the downside is that RxJava 2 was released soon after the book was published.
Having said that, most of the contents of the book are still applicable, but you have to mentally translate the concepts and examples to the RxJava 2 API. Hopefully the authors will update the book to RxJava 2 in a future edition.