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つずつ順番に行い同時に行ってはいけない