iOSエンジニアがAndroidアプリをリリースするまで4 〜Rxなんたら〜
Rx-Java, Rx-Kotlin, Rx-Android
iOSではもはデファクトスタンダードとなっているRx-Swift。
いわゆるリアクティブプログラミングを実現するための便利なライブラリ。
Androidアプリでも使いたいと思い、調べてみるとRx-Java, Rx-Kotlin, Rx-Androidと三種類もある。。。
どれを使っていいかわからない。。
ということで調べました。
Rx-Java
RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
と、冒頭にある通り、オブサーバーパターンを簡単に実装するためのライブラリという位置づけ。
Rx-Kotlin
RxKotlin is a lightweight library that adds convenient extension functions to RxJava.
と、冒頭にある通り、Rx-Javaを拡張するライブラリのようです。
REDMEには配列からObservableを生成する例が載っています。
Rx-Android
This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More specifically, it provides a Scheduler that schedules on the main thread or any given Looper.
と、冒頭にある通り、Rx-Javaの拡張で、Androidでスレッドが使えるようになるよ。とのことです。
実現したいこと
アプリ内の設定内容を各UIに伝えたい。
もう少し具体的に記載すると。。。
iOSアプリ内ではユーザーの設定によって各画面の背景画像を変更できるようにしています。
・ユーザー設定をシングルトンクラスで保持
・背景画像はImageViewのサブクラス
・ユーザー設定が変更されたら、その変更をImageViewのサブクラスで購読
・ImageViewの背景画像を差し替える
ということをしようとしています。
上記の通り、
Rx-Kotlinは配列からObservableを作るのに便利そう
Rx-Androidはスレッド操作に適してそう
ということで、Rx-Javaだけで良さそうです。
参考ページ
この記事が気に入ったらサポートをしてみませんか?