前提 いま参加しているプロジェクトのネットワーク通信部分を大幅に書き換える必要があり、次のような理由からRxJavaの採用を検討した。 複数のAPI呼び出しを並行でやったり待ち合わせて逐次処理したり使い分ける必要がある 複雑な一連の呼び出しをリトライやエラーハンドリングを考慮して書くことが簡単にできそう 各社の採用実績から思いとどまる理由がない 筆者はRxJava(1)を業務で使ったことがある RxJavaで書き直した結果これらの要求を非常に簡単に満たすことができたが、不慣れなメンバーには「いつ非同期処理が開始されたのか分かりにくい」ことが判明した。 本ドキュメントは元々社内Qiita Teamに書き始めたものであるが、世の中の同じようなチームにも益があるかも知れないと考え公開することにした。 なお、現在RxJavaはバージョン2なのでとくに断りなくRxJava2(2017年6月時点の最新