This RxJava beginner course is a collection of various RxJava concepts and RxAndroid examples. The aim of this course is to teach fundamental concepts of RxJava that takes you from a novice to intermediate RxJava developer.

Every concept is explained in detailed manner with code examples. All the Android examples provided simulates the realtime android apps. Follow the course in the mentioned order to understand it easily.

  1. Basics

    1. Introduction To Reactive Programming – RxJava, RxAndroid

      Brief introduction of Reactive Programming, basics of RxJava and RxAndroid with examples. I would say, this article is foundation of this course. Thorough understanding is necessary before proceeding further.

    2. Introduction to Operators

      Introduction to RxJava operators, types of them and list of operators available in RxJava.

      1. From, Just, Range and Repeat

        Basic operators to create an Observable, helpful in practising RxJava examples.

    3. Understanding Observables

      Detailed explanation of types of Observables & Observers available in RxJava.

  2. Operators

    1. Understanding Map, FlatMap, SwitchMap and ConcatMap

      Useful operators in RxJava and use cases of each operator

    2. Buffer, Debounce
    3. Concat, Merge
    4. Mathematical & Aggregator Operators

      RxJava mathematical and aggregator operators useful in performing math operations on Observables

    5. Additional Operators

      All the other available operators in RxJava

  3. Networking

    1. Android RxJava Networking with Retrofit, Gson – Notes App

      RxJava networking using Retrofit library. You will get a chance to learn realtime use cases of Observables in this article. An example of live Notes App is explained.

  4. Android Examples

    1. Android RxJava Instant Search – Local, Remote Databases (Retrofit)

      Android example of adding instant search to a Contacts app. You will see a use case of Debounce, SwitchMap, Observables and Retrofit when put together.

    2. Android Flight Ticket App – RxJava FlatMap (Retrofit)

      Android example of simple Flight Ticket price listing app. You will learn the use of FlatMap and ConcatMap operators when used with Retrofit networking calls.

  5. Roadmap

    The following concepts are scheduled to be published in near future. You can start exploring the concepts until published on the same blog.

    1. RxBinding
    2. RxJava Subjects
    3. RxJava Event Bus
    4. Understanding Marble Diagrams
    5. Data Storage (SQLite, Room Persistence)
    6. Flowable Backpressure Example
    7. Hot vs Cold Observables
    8. Side Effect Operators
    9. Volley Networking
    10. Form Validation
    11. Rx Runtime Permissions
    12. Timers & Intervals
    13. Clean Architecture
    14. MVP, MVVM Architecture
    15. Complete RxJava Apps
Author

  • Franky Junior

    love this series

  • Vishvam

    Great articles. Simply & Easy. You are the best teacher

  • ysf.cyln

    Finally! I was waiting for it. You are awesome Ravi, thanks a lot

  • Rajat

    Wow was waiting for it for long….make one on dagger 2 as well please please please

    • Yup but lot of things on plate 🙁 Might take a while.

  • Gamis

    Hey bro thank you for this, in the internet the info about RX It’s very little 🙁 but i follow you always and this is great… You should be talk about integrated Retrofit with RX !!!

  • Yerico Ezeta

    Thank you Ravi. Yor are greater. 1000 Thanks so much.

  • Sanghati Mukherjee

    Hi Ravi,

    Thanks for being such an amazing person who helped developer at the right time when they need to understand the concept of any library or tools. RxJava was one of the difficulty concept to understand but you made it easy for us. There is one more concept which I find difficulty and sure many of the developers out there who are still in confuse state of how to use it. The concept which I am talking about is Dagger 2.0. Literally I am banging my head towards a blank wall when I am trying to understand Dagger. It will be great if you can help us understand this concept like you did for RxJava. There are many tutorial out there but none make it easy for us to understand. I hope my comment doesn’t make you feel that I am demanding or ordering you, this is not at all my intention because I know you have your own priority list. But I hoping in that list Dagger is one of them.

    Thanks for everything you have done for Android Developer community.

    With Regards,
    Sanghati Mukherjee

    • Hi Mukherjee

      Thanks for taking your time in writing valuable feedback. I have already planned all the things you requested, but because of other schedules I am not able to complete them. Trust me I work 14-18 hours a day, but still completing them a big task for me.

      I have planned RxJava, Android Architectural components (MVP, MVVM), Dagger .. I’ll make sure they are published in a month time.

      Thank You

      • Pawan Soni

        Thankyou so much ravi for Android Architectural components

      • rahul

        Thank you in Advance for Android Architecture Components

      • Hasnain Ahmad

        Still waiting for Android Architectural components (MVP, MVVM), Dagger tutorials

        • I am F**ked 🙁 Trying to get it done, but occupied with client’s deliverables.

  • Ersultan Utemisov

    Hello Ravi, How are you? I just want to say that you are amazing, thank you for your tutorials

    • You are welcome Ersultan.

      Have a nice day!

  • irfan ali

    Hi Ravi,
    Thanks a lot for this wonderful tutorial. Can you please guide about what should use both in Architecture Components or RX android. Also please mention main difference between both.

    • Hasnain Ahmad

      @@ravi8x:disqus Please guide us about the Pros and Cons of Android Architecture Components and RxJava. Is the Android Architecture Components is replacement of RxJava?

      • Hi Hasnain

        RxJava is just a framework. It’s nothing to do with Architecture components. Android does provides RxJava kind of API but I can see RxJava provides more functionality over it. You can use android’s native Observers or use RxJava.

  • Nguyễn Linh

    Best articles.
    Thank for author.

  • Shubhransu Nandi

    Heyyy Ravi….Your posts are really very awesome & helpful . Till now i didn’t get any clear picture regarding Rx , but after went through your posts i am having much confident on Rx and able to give left and right on interviewer’s face . Once again very thankful for your effort . and eagerly waiting for your upcoming Roadmap (especially Android Architecture Components) ……

    • Thank you Shubharansu. I’ll do my best 🙂

  • Nguyễn Trường Giang

    😍 Thank you Ravi with ❤️!

  • Rituparna Khadka

    Hi Ravi waiting egarly for rest of the topics…. N many many thanks for your such wonderful effort to teach things to me n millions….

  • Mateus Lima Batista

    thank you Ravi for doing that. Its amazing.

  • amaterasu07

    This is great ! Please continue this series

  • your blog has helped me a lot, continue with the articles

  • Ashwini Sawanth

    The best blog for rx java… thank u soo much…this has helped me a lot 🙂

  • Thiri Lay

    Awesome! Thank you so much 🙂

  • Na Pro

    Awesome tutorials! Many thanks 🙂 I’m looking forward to reading your next tuts.

    • You are welcome 🙂 Have you read all the articles?

      • Na Pro

        I read Beginner course 🙂

  • alishawky

    when you will purplish the RoadMap section

    • Randy Alex

      PLS DROP YOUR ICQ

  • Kuanysh Les

    Hello, Ravi. Thank you so much for you tutorials related to RxJava. It helped me a lot.Please publish all your intended topics.Can’t wait for that.

    • I am trying Kuanysh. But because of other work related commitments I have, I am failing to fulfil my promise. I’ll get them completed soon.

      • shahimtiyaj

        Please ASAP

  • amaterasu07

    Hello Ravi !
    My recommendation is to have an Udemy course regarding RxJava, because I would gladly pay for it.

  • panda “Si Kabut Hitam”

    i like this article.. hope u make more soon…
    absolutely gonna share this article..

  • Хома Хомячок

    Sorry for my noob question. But could you explain, how to launch modules of app. Let’s say I want to launch Example1Activity.class only. But when I try to launch it, it says Activity must be exported or contain an intent-filter.

    • I am yet to add a home screen to launch individual modules. But you can define launcher intent to your activity in manifest file and launch the activity.

      • Хома Хомячок

        Thanks for fast response. Also possible to export activity by this, in manifest file “android:exported=”true””. After this line in selected activity , it’s possible to run it separately: from right click menu on class file.

  • Sandeep

    public Disposable getOwnership(final AuthRequestBean reqBean, final Consumer response, final Consumer error) {
    disposable = services.getOwnership(reqBean)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribeOn(Schedulers.io())
    .subscribe(new Consumer() {
    @Override
    public void accept(OwnershipResponseBean merchantDetailsResBean) throws Exception {
    if (merchantDetailsResBean.getMessage()!=null && !(merchantDetailsResBean.getMessage().equalsIgnoreCase(“Success”))){
    error.accept(new Throwable(merchantDetailsResBean.getMessage()));
    return;
    }
    response.accept(merchantDetailsResBean);
    }
    }, error);
    return disposable;
    }
    ————————————————————————————

    Hi ravi…I have found this code from my friend.
    he is using .subscribe(new Consumer(){ accept,error
    }
    instead of .subscribe(anyObserverName).

    What’s the difference in both??

  • David Castillo

    Hola Ravi Tamada. Necesitaba conversar con Ud. davecastle73@hotmail.com

  • Raviraj Desai

    Hey please publish tutorial on dagger2 using MVVM

  • Shubham Anand

    Please Complete the roadMap ASAP along with Dagger2.

  • Sonal Agrawal

    I was trying RXJAVA2 for a couple of days but didn’t get full tutorial that could make me understand well. My all doubts got cleared after I read your blogs, really It’s so helpful, please Complete the roadMap as well.

  • CobalGamer

    Hey i used your Instagram Filter APP but i am having an issue with these two strings: They wont get resolved

    if (id == R.id.action_open) {
    openImageFromGallery();
    return true;
    }

    if (id == R.id.action_save) {
    saveImageToGallery();
    return true;

    and these one too:

    @BindView(R.id.coordinator_layout)
    CoordinatorLayout coordinatorLayout;

    It would be awesome if you could help me

  • mindfreak54321

    Are you going to make a tutorial on the MVVM architecture?

    • Planning but don’t know when it’s gonna publish.

      • siddhesh kathale

        we are waiting for MVVM architecture

  • Atul Bhardwaj

    Hi Ravi,

    Please cover How to use Rx with Android View components, means how to use Rx for button click or editText text change

  • Atul Bhardwaj

    Please cover RxBinding