0
Cùng tìm hiểu Coroutines trong Kotlin
I. Giới thiệu về Kotlin Coroutines
-
Kotlin Coroutines trong Android được biết đến như một cách để quản lý các background threads nhằm tối giản code và giảm thiểu các phần xử lý liên quan đến callbacks.
-
Kotlin Coroutines là một tính năng của Kotlin sẽ convert các callback bất đồng bộ cho các tác vụ chiếm nhiều thời gian (long-running task) như database, network access vào trong đoạn mã tuần tự.
-
Dưới đây là ví dụ về async callbacks và sau khi xử lý chúng với coroutines
// Async callbacks
networkRequest { result ->
databaseSave(result) { rows ->
// Result saved
}
}
// The same code with coroutines
val result = networkRequest()
databaseSave(result)
// Result saved
II. Chuẩn bị
- Bạn sẽ học được những gì?
- Làm thế nào để gọi các đoạn code được viết bởi coroutines và nhận được các kết quả.
- Làm thế nào để sử dụng suspend functions để các phần bất đồng bộ chạy tuần tự.
- Cách sử dụng
launch
vàrunBlocking
để control code được executes như thế nào. - Kỹ thuật convert những APIs có sẵn sang coroutines với
suspendCoroutine
. - Cách sử dụng coroutines với Architechture Components.
- Các bài tập để testing coroutines.
- Android Studio version 3.2
- Và trước hết bạn cần có một số hiểu biết cơ bản như sau để bắt đầu:
- Android Architechture Components: ViewModel, LiveData, Repository và Room (Room with a View).
- Kotlin syntax bao gồm các extension functions và lambdas.
- Cách sử dụng threads trên Android bao gồm main thread, background threads và callbacks. (Phần này khá quan trọng, bạn có thể tìm hiểu thêm tại Guide to background processing)
III. Cài đặt
- Download file Zip hoặc clone từ GitHub repository về:
git clone https://github.com/googlecodelabs/kotlin-coroutines.git
kotlin-coroutines repository này sẽ bao gồm 03 app projects khác nhau:
- kotlin-coroutines-start — Một ứng dụng đơn giản giúp bạn khám phá cách làm coroutine đầu tiên.
- kotlin-coroutines-repository — Project được based trên các callback, việc của bạn là convert chúng sang sử dụng coroutines.
- kotlin-coroutines-end — Project đã được thêm vào coroutines.
NỘI DUNG
3.8K 2 0
10
BÌNH LUẬN