Almost every application we write now-a-days requires some amount of aysnchronous programming. Whether you are writing a SPA that uses Ajax requests, a desktop app that responds to events, or a Mobile App you are most likely using some sort of async pattern.

Enter ReactiveX. ReactiveX is a cross platform API for asynchronous programming with observable streams. The list of languages is pretty impressive:

  • Java: RxJava
  • JavaScript: RxJS
  • C#: Rx.NET
  • C#(Unity): UniRx
  • Scala: RxScala
  • Clojure: RxClojure
  • C++: RxCpp
  • Lua: RxLua
  • Ruby: Rx.rb
  • Python: RxPY
  • Groovy: RxGroovy
  • JRuby: RxJRuby
  • Kotlin: RxKotlin
  • Swift: RxSwift
  • PHP: RxPHP
  • Elixir: reaxive

Unfortunately, the documentation for using ReactiveX is mostly contrived examples and doesn't really give you good examples of how to use it in a real-world example.

In this presentation I will walk through what ReactiveX is, what the basic concepts are, and show a sample application and rework it to use ReactiveX to make the event handling much simpler and the code easier to read.