【Android Studio】RxKotlinの使い方と導入方法!機能拡張メソッドの種類

この記事からわかること

  • Android Studio/KotlinRxKotlin使い方
  • 機能拡張されたメソッド種類
  • toObservabletoFlowablesubscribeByなどの使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

RxKotlinとは?

公式リファレンス:RxKotlin

そもそもRxKotlinとはMicrosoftが2011年にリリースしたReactiveX(Reactive Extensions)と呼ばれるライブラリのJava版であるRxJavaをKotlinで操作するための拡張関数がまとまったライブラリです。ReactiveXはもともと.NET Framework用に開発されたライブラリで、その後KotlinだけでなくC++やSwift、JavaScriptなど数多くのプラットフォームにも提供されるようになりました。

そのため拡張された関数が含まれているRxKotlinはRxJavaと一緒に導入して使用する前提となっています。RxJava自体もKotlinでそのまま活用することができます。RxJavaの使い方を理解しておくとスムーズなので先に以下の記事を参考にしてください。

RxKotlinの導入方法

RxKotlinをAndroid Studioで利用できるようにするにはRxJavaも含めて導入する必要があります。2024年現在、RxKotlinは3.x系までリリースされており、導入する際には同バージョンのRxJavaを指定する必要があります。以下を「bundle.gradle(Module)」に追加して「Sync Now」をクリックします。


dependencies {
    // RxJava/RxKotlin/RxAndroid
    implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
    implementation 'io.reactivex.rxjava3:rxkotlin:3.0.0'
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
}

この際にRxAndroidも一緒に導入しておきます。これはRxJavaを使用する上でUIスレッドへのスケジューリングやAndroidコンポーネントとの統合を行うためのユーティリティが含まれているようです。

拡張機能の種類

RxKotlinではRxJavaを使いやすくするようなさまざまな拡張機能が提供されています。

toObservableメソッド

toObservable任意のデータ型(リストや配列など)をObservableオブジェクトに変換するためのメソッドです。RxJavaのfromIterableメソッドと似たような役割になります。

val list = listOf(1,2,3,4,5,6)
val observable = list.toObservable()
observable.subscribe {
    Log.i("RxKotlin", it.toString())
}

toFlowableメソッド

toFlowable任意のデータ型(リストや配列など)をFlowableオブジェクトに変換するためのメソッドです。

val list = listOf(1,2,3,4,5,6)
val flowable = list.toFlowable()
flowable.subscribe {
    Log.i("RxKotlin", it.toString())
}

Observableオブジェクトを変換することも可能です。

 val list = listOf(1,2,3,4,5,6)
val flowable = list.toObservable().toFlowable(BackpressureStrategy.BUFFER)
flowable.subscribe {
    Log.i("RxKotlin", it.toString())
}

subscribeByメソッド

subscribeBy名前付き引数を使用してobserverを構築するメソッドです。RxJavaのsubscribeメソッドと役割は同じですが記法が異なります

observable.subscribeBy(
    onNext = { data: String->
        onNextFunction(data)
    },
    onError = { throwable: Throwable ->
        onErrorFunction(throwable)
    },
    onComplete = {
        onCompleteFunction()
    }
)

addToメソッド

addToは複数のDisposableをまとめて管理できるCompositeDisposableクラスへの追加をより簡潔に実装できるメソッドです。

Observable.create<String> { emitter ->
    emitter.onNext("Hello")
}.subscribeBy(
    onNext =  { length -> Log.e("RxJava", length.toString()) }
).addTo(compositeDisposable)

たくさんある機能拡張メソッド

公式リファレンス:RxKotlin-Extensions

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index