この連載はRxJavaを使って、リアクティブプログラミングにおけるポイントやRxJavaが持つ機能について学んでいくことを目的としています。前回はReactive StreamsとRxJava 2.xのポイントについて簡単に見ましたが、今回はこのRxJava 2.xを使って実際に実装すると、どうなるのかについて見ていきます。
RxJava 1.xの回では"Hello, World!"と"こんにちは、世界!"を通知し、受け取った通知に対しての出力を行うサンプルを作りました。今回はこのサンプルと同じような処理をするものをRxJava 2.xを使って実装してみましょう。
対象読者
- Java経験者(初心者可)
- RxJava未経験者
- リアクティブプログラミング未経験者
※ただし、前回までの連載を読んでいる前提です。
環境構築
RxJava 2.xではRxJava 1.xとは違いReactive Streamsとの依存があるため、RxJava 2.xのjarだけでなく、Reactive Streamsのjarにもパスを通すことで初めてRxJava 2.xを使えるようになります。そのため、MavenやGradleを使ってRxJava 2.xとReactive Streamsとの間の依存関係を自動で解決させるようにしたほうがよいでしょう。
Mavenを使って環境を構築する場合、pom.xmlに次のdependencyを追加して取得することでRxJava 2.xが使える環境を構築できます。今回は執筆時点での最新版である2.0.0を使います。
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.0.0</version>
</dependency>
同様にGradleからも追加が可能です。dependenciesに下記を追加してください。
dependencies {
…… 略
compile 'io.reactivex.rxjava2:rxjava:2.0.0'
}
MavenやGradleを使うと、Reactive Streamsの記述を行わなくても自動的にRxJava 2.xが依存しているReactive Streamsのjarをダウンロードしてくれます。こうすることで、新しいバージョンに変更する際に依存するライブラリのバージョンの対応を意識しなくてよくなります。
しかし、これらのツールを使わずに環境を構築したい場合、Mavenの検索サイトから直接jarを取得することも可能です。
その場合、Mavenの検索サイトから、
g:"io.reactivex.rxjava2" AND a:"rxjava"
と入力し検索すると、RxJava 2.xの最新のjarがダウンロードできるようになります。
ただし、この場合はReactiveStreamsのjarが含まれていないので自分でダウンロードする必要があります。そのため、Mavenの検索サイトから、
g:"org.reactivestreams" AND a:"reactive-streams"
で検索し、Reactive Streamsの対象のバージョンのjarをダウンロードしないといけません。
現段階ではReactive Streamsのバージョンは1.0.0なのですが、今後それぞれがバージョンアップした際は対応するバージョンを意識しないといけないので、各jarを個別に取得して設定する場合は注意してください。
この記事は参考になりましたか?
- RxJavaによるリアクティブプログラミング入門連載記事一覧
- この記事の著者
-
須田 智之(スダ トモユキ)
十数年間おもにSI企業にシステムエンジニアとして携わり、現在はフリーランスに。企業向けのシステム開発のかたわら個人でのモバイルアプリの開発やIT分野の記事も執筆。RxJava 2.0に対応した著書『RxJavaリアクティブプログラミング』が2017年2月16日より発売中。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

