effective-rxjava - Effective RxJava

  •        20

This is a collection of items, each specifying one general rule, to help you write RxJava code more effectively. It is modeled after two of my favorite technical books, Effective C++ and Effective Java. I appreciate not only the soundness of their contents, but the brevity of their writing style. I hope that Effective RxJava has the same value proposition. For each rule I've attempted to provide relevant example code -- most of which is currently in production in the Khan Academy Android app.




Related Projects

android-data-binding-rxjava - Demo that shows how to use RxJava with Android Data Binding ObservableFields

  •    Java

Simple demo developed with love at Tango which demonstrates how to wrap Android DataBinding ObservableField into RxJava's Observable. With this solution it is possible to register for ObservableField's value changes and use it with RxJava operators.

RxJava2-Android-Samples - RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android

  •    Java

RxJava 2.0 has been completely rewritten from scratch on top of the Reactive-Streams specification. The specification itself has evolved out of RxJava 1.x and provides a common baseline for reactive systems and libraries. Because Reactive-Streams has a different architecture, it mandates changes to some well known RxJava types.

Posts - A sample Android app using Kotlin, Dagger 2, RxJava, RxAndroid, Retrofit and Android Architecture Components with a modular setup & effective networking

  •    Kotlin

A sample app to demonstrate the building of a good, modular and scalable Android app using Kotlin, Android Architecture Components (LiveData, ViewModel & Room), Dagger, RxJava and RxAndroid among others. Effective Networking - Using a combination of Retrofit, Rx, Room and LiveData, we are able to handle networking in the most effective way.

RxKotlin - RxJava bindings for Kotlin

  •    Kotlin

RxKotlin is a lightweight library that adds convenient extension functions to RxJava. You can use RxJava with Kotlin out-of-the-box, but Kotlin has language features (such as extension functions) that can streamline usage of RxJava even more. RxKotlin aims to conservatively collect these conveniences in one centralized library, and standardize conventions for using RxJava with Kotlin.Chapter 12 of Learning RxJava covers RxKotlin and Kotlin idioms with RxJava.


  •    Java

RxJava - a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

RxWindowIfChanged - An RxJava 2 operator which splits an observable into windows using a key selector

  •    Java

An RxJava transformer which combines replay(1), publish(), and refCount() operators.

RxJava - Reactive Extensions for the JVM

  •    Java

RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences. It extends the observer pattern to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.

Intro-To-RxJava - An extensive tutorial on RxJava

  •    Java

This guide aims to introduce a beginner reactive programmer to the complete power of the RxJava implementation of reactive programming for the JVM. It is based on the IntroToRx guide for Rx.NET. No experience with either reactive or functional programming is needed to follow the book. Familiarity with the basics of Java is required.

AutoDispose - Automatic binding+disposal of RxJava 2 streams.

  •    Java

AutoDispose is an RxJava 2 tool for automatically binding the execution of RxJava 2 streams to a provided scope via disposal/cancellation.Often (especially in mobile applications), Rx subscriptions need to stop in response to some event (for instance, when Activity#onStop() executes in an Android app). In order to support this common scenario in RxJava 2, we built AutoDispose.

RxJava-Android-Samples - Learning RxJava for Android by example

  •    Java

This is a repository with real-world useful examples of using RxJava with Android. It usually will be in a constant state of "Work in Progress" (WIP). I've also been giving talks about Learning Rx using many of the examples listed in this repo.

RxRiddles - Riddling your way to master RxJava

  •    Kotlin

This repository contains some riddles for RxJava to help you learn and master RxJava. There is an accompanying medium article that gives some more information. Each riddle is in a single file with an accompanying unit test that will check your implementation. Next to the unit test, I have also put up my solution. Note that there are multiple ways to achieve and solve the riddles but usually there's a dedicated operator or function that I want to show you.

RxJavaDemoApp - This repository contains 100+ examples using RxJava for Android

  •    Java

This repository is intended to provide in a single place (i.e. a single Android app) over than 100 examples of RxJava for Android which you can use as a reference when dealing with RxJava. Some examples were already covered into details in one of the articles of our RxJava series (you can find the links below), while some other were based on external articles, so you can go directly to those articles and see the the authors' explanations.

RxRelay - RxJava types that are both an Observable and a Consumer.

  •    Java

Objects that are both an Observable and a Consumer.

Android-RxJava - Learning RxJava for Android by example

  •    Java

Learning RxJava for Android by example

RxJava2Extensions - RxJava 2

  •    Java

RxJava 2.x implementation of extra sources, operators and components and ports of many 1.x companion libraries.Support the join-patterns and async-util with functional interfaces of consumers with 3-9 type arguments and have functional interfaces of functions without the throws Exception.

RxJava2Interop - Library to convert between RxJava 1

  •    Java

Library to convert between RxJava 1.x and 2.x reactive types.Note that 2.x Subjects and FlowableProcessors support only the same input and output types.

RxGroups - Easily group RxJava Observables together and tie them to your Android Activity lifecycle

  •    Java

RxGroups lets you group RxJava Observables together in groups and tie them to your Android lifecycle. This is especially useful when used with Retrofit.For simple scenarios you can probably just let the original request be cancelled and fire a new one. However it's easy to see how this becomes a problem in more complex situations.

RxAndroid - RxJava bindings for Android

  •    Java

Android specific bindings for RxJava 2.This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More specifically, it provides a Scheduler that schedules on the main thread or any given Looper.