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!
kotlin gradle rxkotlin reactivex
Commentami!