The example concluding the chapter demonstrates what we've learned so far. We can write complex logic by chaining the
Observable instances using a variety of operators. We can transform incoming data using the
flatMap() operators and can branch logic by using the
filter() operators or the different
flatMap() operators. We can join these branches again with the
flatMap() operators. We can select parts of the data with the help of different filters and accumulate it with the
scan() operator. Using all of these operators, we can write pretty decent programs in a readable and simple way. The complexity of the program doesn't affect the complexity of the code.
The next step is to learn how to combine the branches of our logic in a more straightforward fashion. We'll learn how to combine data coming from different sources too. So let's proceed with the next chapter!