@budioktaviyan I choose my approach for kotlin-coroutines-retrofit because it gives more flexible API and allow you work with existing retrofit interfaces without refactoring.
Also, approach from retrofit-coroutines forces you to use particular dispatcher for each retrofit interface and you cannot change it, only create new instance with another dispatcher.
But if you don’t have existing retrofit code and want to use it only from kotlin and you don’t need flexible dispatchers, it’s good approach, more natural for user of interface