読者です 読者をやめる 読者になる 読者になる

ゆるーく、エンジニアやってます

ゆるっとエンジニアやってます。Androidのお仕事中心。

【Android】RxJavaでHello, World!

さて、来月から他社へ協力会社社員として出向することになっているのですが、その会社からこんな指令が下りてきました。

 

『RxJava勉強しといて。

あ、あとretrolambdaも使ってるから、よろしく!』

 

掻い摘んで説明するとこんな感じでした。

ふむ、今まで気にはなっていたけどついぞ使わずに来てしまったリアクティブ系のライブラリを使う時がきたようだ。

 

ってことで、とりあえずHello, World!しました。

ちなみに、Androidです。

ソースはこれ。

 

RxJava Hello, World! — Bitbucket

 

内容はいたってシンプル。

Ovservableのfrom()に["Hello,", " World!"]というStringの配列を渡してあげます。

fromはリスト、配列を引数にとるメソッドです。

次にreduce()を呼びます。

これは、要素どうしを集積するメソッドです。

このソースだと、pが今までのcが現在の要素です。

ラムダ式を使って(p, c) -> {/* 処理 */}って感じに書き直してみました。

っていうか1行だからここはわざわざ{}しなくても良かったですね。

「.reduce((p, c) -> p + c)」でもOK。

でsubscribe()でTextViewに結果を表示しています。

 

すると、画面上のTextViewnにはhellos配列に書かれた文字列が連結されて「Hello, World!」と表示されます。

 

他にもズンドコキヨシとかやってみましたが、こちらはどこかのブログで紹介されてたコードをまるっと書き写しただけなので割愛。

全てメインスレッドで処理されていて、キヨシがでるまで画面が真っ白なのでいつか改善したいです。

 

とりあえず、簡単な使い方は分かったかしら。

RxJavaの機能は凄く沢山あるので、出向のその日まで色々試してみようと思います。