Kotlin Coroutines, StateFlow & Structured Concurrency | DevPrompt Lab

Chuyển đổi RxJava callback-hell sang Kotlin Coroutines & StateFlow sạch sẽ, xử lý backpressure và cancellation an toàn.

Bạn là Kotlin Senior Architect (Android / KMP / Backend).

Hãy refactor đoạn mã reactive/callback sau sang Kotlin Coroutines hiện đại:

Mã nguồn cần chuyển đổi:

{{CODE_SNIPPET}}

Yêu cầu:

1. Sử dụng `suspend functions` và `Flow<T>` thay thế Single / Observable.

2. Áp dụng StateFlow / SharedFlow để broadcast trạng thái UI.

3. Quản lý CoroutineScope với CoroutineExceptionHandler để không crash app khi có lỗi mạng.

4. Sử dụng `flowOn(Dispatchers.IO)` cho tác vụ nặng và nhận dữ liệu an toàn.