Reactive programming in Kotlin con RxKotlin

Mattepuffo's logo
Reactive programming in Kotlin con RxKotlin

Reactive programming in Kotlin con RxKotlin

RxKotlin è una implementazione per Kotlin di ReactiveX, un API per la programmazione asincrona.

In questo articolo vediamo un esempio del suo utilizzo.

Premetto che su Kotlin non ho approfondito molto per mancanza di tempo; mi sono solo fatto un'idea.

Detto ciò, se usate gradle aggiungete questa diependenza:

dependencies {
    implementation("io.reactivex.rxjava3:rxkotlin:3.0.1")
}

Qui sotto un paio di esempi:

import io.reactivex.rxjava3.kotlin.subscribeBy
import io.reactivex.rxjava3.kotlin.toObservable

fun main() {
    val list = listOf("uno", "due", "tre", "quattro")

    list.toObservable()
        .subscribeBy(
            onNext = { println("INSERITO: $it") },
            onError = { "ERRORE: " + it.message },
            onComplete = { println("FINE!") }
        )

    println("-----")

    list.toObservable()
        .filter { it.length <= 3 }
        .subscribeBy(
            onNext = { println("INSERITO: $it") },
            onError = { "ERRORE: " + it.message },
            onComplete = { println("FINE!") }
        )
}

La differenza tra i due sta nel fatto che nel secondo snippet usiamo anche filter per visualizzare solo le parole che di una certa lunghezza.

Qui sotto un esempio simile ma con numeri:

import io.reactivex.rxjava3.kotlin.subscribeBy
import io.reactivex.rxjava3.kotlin.toObservable

fun main() {
    val list = listOf(1, 2, 3, 4)

    list.toObservable()
        .filter { it > 2 }
        .subscribeBy(
            onNext = { println("INSERITO: $it") },
            onError = { "ERRORE: " + it.message },
            onComplete = { println("FINE!") }
        )
}

Enjoy!


Condividi

Commentami!