KeijuMatsumoto authored on 11 Nov 2017
.idea [add] Project 7 years ago
app [add] Observable 7 years ago
gradle/ wrapper [add] Project 7 years ago
.gitignore [add] Project 7 years ago
README.md [update] README.md 7 years ago
build.gradle [add] RxJava, RxAndroid 7 years ago
gradle.properties [add] Project 7 years ago
gradlew [add] Project 7 years ago
gradlew.bat [add] Project 7 years ago
settings.gradle [add] Project 7 years ago
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つずつ順番に行い同時に行ってはいけない