こんにちは、ディップ Advent Calendar 14日目の担当者のものです。大屋です。
業務ではAndroidアプリを担当してます。けどiOSとかもやってたりします。
春からJava言語を勉強を開始してAndroidアプリを作ってます。
そんな日々の業務の中でよく聞くRxJava...
名前は良く聞くけど一体何なんだろう?
今回はRxJavaについて素人目線で色々調べてみましたのでまとめたいと思います。
宜しくお願い致します!!
RxJavaとは...
まずはRxJavaとはなんぞや?について、
RxJavaはJavaでリアクティブプログラミングをする為のライブラリです。また、このライブラリは軽量で、他のライブラリとの依存関係がないことから気軽に使える利点があります。
リクティブプログラミングとは...
続いてはリアクティブプログラミングについてです。
リアクティブプルグラミングはデータの流れに着目したものになっています。スマホアプリ開発の場合は画面の生成時や破棄するときにコールバック関数が用意されていますが、リアクティブプログラミングのわかりやすい例としてGPSがあります。GPSは、その持ち主の位置情報が更新されればデータが送信され、立ち止まるとデータの送信はストップします。このように、特定のイベントに対してロジックを実行するのではなく、データが生成された時点で処理が始まるのがリアクティブプログラミングと言えます。
リアクティブプログラミングにより実装することの利点は、先ほど説明したデータの送信者とデータの受信者で処理を分けてコーディングできることから無理なくデータストリームを扱えることができる点が挙げられます。
ObservableとObserverについて...
データの送信と受信を分けて記述できると先ほど説明しましたが、リアクティブプログラミングではデータを送信するオブジェクトをObservable、データを受信するオブジェクトをObserverとして取り扱います。また、データを送信するObservableをObserverが購読(subscribe)することによりObserverはデータを受け取ることができるようになります。
最後に
今回の記事ではRxJavaとリアクティブプログラミングについてザックリと説明しました。次回は簡単なデモをしながら記事をまとめますので宜しくお願いします。