RXJava
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
-
What is it?
-
Flow API
-
Differences between 1.x and 2.x
-
-
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 -
composeandTranformer -
takeWhile -
concatMap -
zipandzipWith
-
-
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