Avatar ·

Por que as coroutines em Kotlin são melhores que RxKotlin para tarefas assíncronas?

Olá a todos! Recentemente comecei a estudar Kotlin para desenvolvimento Android e me deparei com uma escolha: usar coroutines ou RxKotlin. Há muitos debates na internet e fiquei confuso. Escrevi um pequeno exemplo em RxKotlin que carrega dados da rede e atualiza a 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}") } ) } ``` Isso funciona, mas o código parece muito verboso. Disseram-me que coroutines são mais simples e leves. Tentei escrever o mesmo com coroutines: ```kotlin fun loadUserData() { CoroutineScope(Dispatchers.Main).launch { val user = withContext(Dispatchers.IO) { api.getUser() } textView.text = user.name } } ``` De fato, há menos código, mas não entendo: quais são as reais vantagens