Pourquoi les coroutines en Kotlin sont-elles meilleures que RxKotlin pour les tâches asynchrones ?
Bonjour à tous ! J'ai récemment commencé à étudier Kotlin pour le développement Android et j'ai été confronté à un choix : utiliser les coroutines ou RxKotlin. Il y a beaucoup de débats sur Internet et je suis confus.
J'ai écrit un petit exemple avec RxKotlin qui charge des données depuis le réseau et met à jour l'UI :
```kotlin
fun loadUserData() {
Observable.fromCallable { api.getUser() }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ user -> textView.text = user.name },
{ error -> Log.e("TAG", "Error: ${error.message}") }
)
}
```
Cela fonctionne, mais le code semble trop lourd. On m'a dit que les coroutines sont plus simples et plus légères. J'ai essayé d'écrire la même chose avec des coroutines :
```kotlin
fun loadUserData() {
CoroutineScope(Dispatchers.Main).launch {
val user = withContext(Dispatchers.IO) { api.getUser() }
textView.text = user.name
}
}
```
Effectivement, il y a moins de code, mais je ne comprends pas : quels sont les véritables avantages