Over a million developers have joined DZone.

7 Tips for Using RxJava on Android

DZone's Guide to

7 Tips for Using RxJava on Android

· Java Zone ·
Free Resource

Take 60 minutes to understand the Power of the Actor Model with "Designing Reactive Systems: The Role Of Actors In Distributed Architecture". Brought to you in partnership with Lightbend.

It's pretty clear that some people are very fond of RxJava, but that's not to say there are no hurdles to overcome. This recent post from Timo Tuominen at the Futurice blog explores Tuominen's first foray into RxJava, and while his opinion is clearly favorable, he suggests that there was a fairly substantial learning curve. Referring to the initial project, which he worked on last year, Tuominen says:

We made the bold decision to build the entire Android architecture in RxJava. Little did we know at that time, though, just how deep the dive would be. After a few initial encouraging experiments we were surrounded by eerie problems and sleepless nights.

In turn, Tuominen has come up with seven tips for using RxJava on Android. The tips cover a lot of ground, covering the following topics:

  1. Synchronous RxJava
  2. Hot and cold subscriptions
  3. Using subjects
  4. Monitoring your thread
  5. Studying RxJava
  6. Observer vs. action
  7. Memory leaks in subscriptions

Ultimately, though, Tuominen is happy with RxJava. It's just a matter of getting started. According to Tuominen:

...there was no desire to turn back. It was clear the reactive way was the right way and anything else would have felt but an ugly compromise. That is, in fact, the funny thing about reactive — no matter how hard it is in the beginning, it always feels it is worth it.

Check out the full article to learn what you need to know to use RxJava on Android.

Learn how the Actor model provides a simple but powerful way to design and implement reactive applications that can distribute work across clusters of cores and servers. Brought to you in partnership with Lightbend.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}