The basic idea behind reactive programming is simple. Things change, you observe them, and you react when the change happens. And change happens all the time. Everything around us is a source of information, everything moves, everything updates constantly. The problem is that we need to know when things happens, instead of continuously checking to see if everything is still the same. When you think in a reactive way, you begin to imagine the data as a continuous flow of information: temperature value emitted by a sensor, a new record on a database, an updated figure in a spreadsheet. You aren't asking for data, you just subscribe to the change and react when it happens. ReactiveX is the common tongue of the reactive programming world. It's a new programming paradigm you can apply to infinite scenarios using any popular programming language. To grok ReactiveX "to really get it" you need to rewire your brain to see the world differently, and we're here to help you.
Part 1: Understanding reactive programming
1. Principles of reactive programming
2. Introduction to Rx
3. Basic Rx recipes: Reactive music player
4. More Rx recipes: Creating and handling observables
5. Transforming data
Part 2: Effective reactive programming
6. Daily backend life with Rx
7. Rx for network communication
8. Rx for databases
9. Rx for the web
10. Rx for Android
Part 3: Advanced techniques
11. Optimizing Rx on Android
12. Rx debugging & testing
13. The pressure of handling too much pressure
14. Operator May I help you?
15. Appendix the future of Rx and reactive programming
About the book
Grokking ReactiveX is a practical book that teaches you to solve complex problems elegantly and with few lines of code. You'll begin with an overview of reactive programming principles along with the key concepts of ReactiveX such as observables, observers, and subscriptions. Then the book goes in to more depth on the observable/observer relationship, and how schedulers approach multi-threading and concurrency. To make learning easier, each chapter introduces a new concept and then immediately shows you how to use it. You'll begin to break down problems in a new way so you can approach them from a reactive mindset. Following carefully-selected examples with thorough, well-paced explanations, you'll immerse yourself in ReactiveX, concept by concept. Along the way, exercises, checks for understanding, and even the occasional puzzler give you opportunities to think and practice what you're learning.
- Using ReactiveX in real-world projects
- Multiple learning approaches to help you grok each new concept
- A practical programming-first teaching style
- Think reactively from start to finish
- Use and debug multithreaded systems
- Programming with immutable collections
- Building flexible, loosely-coupled, and scalable systems
- Reacting to failures instead of just handling them
About the reader
This book is for developers who are familiar with object oriented design patterns and can read Java or C# code.
About the authors
Ivan Morgillo, author of RxJava Essentials, Senior Android Developer, Node.js developer and embedded systems enthusiast, uses Rx everywhere, no matter the language or how small the CPU! Fabrizio Chignoli is a software developer for backend systems on Microsoft platforms, who discovered Rx when it was on its very early stages, and fell in love with the philosophy underneath. He has used it for solving countless problems that would have required much more code with conventional programming. Sasa Sekulic is a senior Android developer and co-founder of Alter Ego Solutions. He was bitten by the Rx bug in 2013 and has used it in all his projects since, vowing to never write another AsyncTask again.