arrow_back Dependency Injection in Android using Dagger 2
Android Reactive Programming with RxJava
Submitted by Ravindra Kumar (@ravidsrk808) on Wednesday, 26 August 2015
Section: Workshops Technical level: Intermediate
This workshop will be a practical journey from basic Reactive Programming and Observer Pattern concepts to the main feature of RxJava, with practical code examples and a real-world app.
I’ll show the audience how to create an Observable “from scratch”, from a list or from a function we already have in our code base. Our listeners will learn how to filter an Observable sequence to create a new sequence containing only the values we want; they will learn how to apply a function to an Observable, how to concatenate, merge or zip Observables.
I’ll show how to enjoy RxAndroid Schedulers to overcome the threading and concurrency hell in Android.
It’s no secret that concurrency is a hard problem to solve. Yet, even in 2015, we’re only beginning to make larger strides towards programming models that drastically simplify dealing with concurrency – and most of the time, this is happening in the server side world.
If you look at your average Android app, however, you will notice that it’s highly concurrent: screens are backfilled with data coming from web services, the local database, or both. The UI needs to reflect changes to the data model, so handling concurrent messages is a task left to the developer.
I dare say that right now on Android, dealing with concurrency is too hard, and by extension, too error prone. Luckily, Netflix has bought .NET’s “Reactive Extensions”/Rx to the Java platform, enabling developers to write asynchronous, message based applications using functional reactive programming.
Please be sure to clone https://github.com/ravidsrk/rx-android-starter
I’m currently a Android Developer at Care.com. Previously i used to work with Cleartrip, Lead developer of
Cleartrip.com’s Android App. I like Open Source projects. I’m a huge fan of fancy Android libraries out there and I contribute with bug reporting, fixing and feedbacks.