Coroutine là giải pháp của Kotlin cho lập trình bất đồng bộ — viết code async (gọi mạng, thao tác cơ sở dữ liệu) đọc tuần tự mà không chặn main thread. Chúng là cách hiện đại, được khuyến nghị để xử lý công việc async trong Android, tránh sự phức tạp của callback.
Tại sao async quan trọng trong Android
MAIN thread (UI) phải luôn phản hồi — chặn nó (với công việc mạng/DB) làm đơ
UI (lỗi ANR "Application Not Responding"):
→ các thao tác dài PHẢI chạy ngoài main thread (bất đồng bộ)
→ các cách cũ: callback (lồng nhau, phức tạp), thread/AsyncTask (dài dòng, dễ lỗi)
→ COROUTINE làm code async gọn gàng và tuần tự.
