Les coroutines sont la solution de Kotlin pour la programmation asynchrone — écrire du code async (appels réseau, opérations de base de données) qui se lit séquentiellement sans bloquer le thread principal. C'est la façon moderne et recommandée de gérer le travail async sur Android, en évitant la complexité des callbacks.
Pourquoi c'est important
The MAIN (UI) thread must stay responsive — blocking it (with network/DB work) freezes
the UI (ANR "Application Not Responding" errors):
→ long operations MUST run off the main thread (asynchronously)
→ old approaches: callbacks (nested, complex), threads/AsyncTask (verbose, error-prone)
→ COROUTINES make async code clean and sequential.
