RXJava

Categories: RXJava, Reactive, Reactive Programming, Functional Programming
Course Length: 2 Days

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.

This class introduces you to the history of RXJava, what purpose it serves, using marble diagrams, and using it in a production environment.

  • Introduction

  • Basic Components

    • Observable

    • Subscriber

    • Subscription

    • Subject

    • Multiple Subscribers

    • Infinite Streaming

  • Marble Diagrams

  • Pipeline Creation

    • just

    • interval

    • fromFuture

    • fromIterable

    • fromCallable

    • defer

  • Intermediate Operators

    • filter

    • map

    • flatMap

    • flatMapIterable

    • compose and Tranformer

    • takeWhile

    • concatMap

    • zip and zipWith

  • Debugging Operators

    • doOnNext

    • doOnError

    • onErrorReturn

    • onAfterTerminate

  • Combination Operators

    • startWith

    • concat

    • amb

    • merge

    • switchOnNext

    • combine

    • combineLatest

    • withLatestFrom

    • amb

  • Reduction Operators

    • collect

    • reduce

    • scan

    • distinct

    • groupBy

  • Error Handling

    • onErrorResumeNext

    • onErrorReturn

    • onErrorReturnItem

    • onExceptionResumeNext

  • Multithreading and Schedulers

    • subscribeOn

    • observeOn

  • Hot vs. Cold Observable

    • publish

    • share

  • Backpressure

    • Flowable

    • throttle

    • throttleWithTimeout

    • sample

    • debounce

  • Testing

  • Performance