Kotlin coroutines are much more than just lightweight threads — they are a new paradigm that helps developers to deal with concurrency in a structured and idiomatic way.
When developing an Android app, one should consider many different things: taking long-running operations off the UI thread, handling lifecycle events, canceling subscriptions, switching back to the UI thread to update the user interface.