画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

RxJavaとKotlinをやってる

最近というか、ちょっと前からRxJavaとKotlinを同時にやり始めてて、初心者的な観点から、いろいろ思った事をメモ。

もともとは、なんとなく情報は追ってるつもりではあったけど、コードはガリガリ書いてなかった感じで、最近ガリガリ書き始めたというレベルです。まだわかってない事は多い。。。

用語が頭に入ってこない

Observer、Observable、observeOn。 Subscriber、subscribe、subscribeOn。 Flowable、Subject、Publisher。

などなど。いろいろな用語があって、その度に調べるんだけど、いまいち頭に残ってくれませんでした。 自分のメモに、Observerはこういうもの。というメモを残してわからなくなったらすぐに見て、少しずつ頭に残っていきました。

RxJava1系と2系の情報が混在している

RxJavaは去年の10月末にリリースされました。

そのせいか、ぐぐると1系の情報だったり、2系の情報が混在してて、あれ、動かない。。。?という事がありました。 アップされている情報の時期を見たり、RxJavaのバージョンが書かれていればそれを確認したりすることで、バージョンを正確に把握するように努めました。

github.com

このページに変更点が書かれているのでそれも見とくとよさそうです。ただし、大きな考え的には変わってはないと思うので、1系の情報が全く役に立たないというわけではないです。

言ってる事はわかるんだけど、やっぱりわからない

いろいろググると情報が出てくるんだけど、いざ書こうとするとあれ、よくわかんないな?という事が多々ありました。 これは体系的な知識が足りてないのかなぁと思って、まとまった解説された記事を探したところ、以下の記事に出会いました。

codezine.jp

最初は1系の情報が出てきますが、2系の情報も出てくるしわかりやすくてよかったです。 RxJavaリアクティブプログラミングという本が最近発売されたんだけど、この本への伏線なのかな?と思ったりしました。購入しました。(下の方にリンク貼っとくのでよろしくおねがいします)

よく出てくるカラフルな図の見方がよくわからない問題

マーブルダイアグラムというらしいです。よくわからなかったのですが、

先程の解説記事の http://codezine.jp/article/detail/9570?p=6

ここに説明が書いてあって、わかりやすくてよかった! というか、本家でもちゃんと英語で解説されてた

Observable (RxJava Javadoc 2.0.6)

これなんなの?問題

IDE使ってるといい感じに補完してくれるのはありがたいんですが、KotlinにもRxJavaにも不慣れな状態だと???になる事が多かったです。

たとえば、こういうやつ。

Observable.just("foo", "bar")
                .subscribe({}, {}, {})

こういうやつとか。

        Observable.just("foo", "bar")
                .subscribe(::println,
                        { it.printStackTrace() },
                        { println("onComplete") })

わからなかったので、Javaで書き直してみてどういう感じになるのか確かめてたりもしました。

カジュアルに実行して動作確認出来る環境を整えた

github.com

こんな感じでテスト実行して結果を確認出来るようにしました。 気になった時に簡単に動作確認出来て便利ー。

最後に

最近ブログ書いてなかったので、ネタを作って書いてみました。 RxJavaはいい感じにハマるとすごい気持ちよさそうな気がするので早くその高みに達したいです。 Rx便利!

また、全てがRxを使っていい感じに解決出来るというわけでもなくて、しっかり考えて使っていかないといけないなぁと思いました。とはいえ、まずは積極的に使っていかないとそれがどういう時にいいのか、悪いのかの判断がしにくいと思うので使っていきたいです。

最近はAndroidのView周りじゃなくてずっと裏側の部分をやってたので、Javaプログラマーだったり、Kotlinプログラマーな気分になってたりもしました。

引き続きRxJavaとKotlinやっていきます!!!!

以下の2冊の本を買っていろいろやってます。

RxJavaリアクティブプログラミング (CodeZine BOOKS)

RxJavaリアクティブプログラミング (CodeZine BOOKS)

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング