Coroutine-urile sunt soluția Kotlin pentru programarea asincronă — scrierea codului async (apeluri de rețea, operații în baza de date) care se citește secvenţial fără a bloca thread-ul principal. Sunt modalitatea modernă, recomandată pentru a gestiona lucrul async în Android, evitând complexitatea callback-urilor.
De ce contează codul async în Android
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.
