見出し画像

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だけで良さそうです。

参考ページ

ReactiveX / RxJava
ReactiveX / RxKotlin
ReactiveX / RxAndroid

この記事が気に入ったらサポートをしてみませんか?