Newer
Older
DevelopRx / README.md
DevelopRx
=========  

#### RxJavaの基本的な構成
* RxJavaの基本的な構成は生産者(Flowable/Observable)が消費者(Subscriber/Observer)に購読(subscribe)される形で成り立っている  
* Flowable/Observable
    * データを生産し通知するクラス
    * FlowableとObservableの違いは、Flowableにはバックプレッシャーの機能があり、Observableには無い
* Subscriber/Observer
    * 通知されたデータを受け取りそのデータを使った処理を行うインターフェース
    * Subscriberにはバックプレッシャーの機能があり通知するデータ数をリクエストしないといけないのに対し、Observerはバックプレッシャーの機能が無いため、データ数の制限無しにデータが通知されることがある
* Subscription
    * Reactive Streamsで定義されているインターフェースで通知するデータの数をリクエストするrequestメソッドと処理の途中でも購読を解除するcancelメソッドを持っています
* Disposable
    * 購読を解除するためのメソッドを持つインターフェース
    * ObservableとObserver間の購読の際にonSubscribeメソッド経由で購読を処理の途中でも解除することができます

#### 通知する際のルール
* nullを通知してはならない
* データの通知は行っても行わなくても良い
* Flowable/Observableの処理を終了する際は完了かエラーの通知のどちらか一方を行わないといけない。両方を通知することはない
* 完了かエラーの通知を通知をした後は他の通知を行ってはいけない
* 通知をする際は1つずつ順番に行い同時に行ってはいけない