iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

Coroutine 停看聽 系列

只要有心,人人都可以成為 Coroutine 高手。

Coroutine 是 Kotlin 重點項目之一,因為它的特性,可以讓我們遠離 Callback hell,讓我們寫非同步的程式就像寫同步的程式一樣簡單。

它是一個輕量級的 Threads,使用 Coroutine 你就不需要考慮 Thread 的事情,因為 Coroutine 都幫你做好了。

另外,它同時提供 Flow 可以支援多個非同步的回傳值。

讓我們一起在三十天內好好學習 Coroutine 吧!

鐵人鍊成 | 共 30 篇文章 | 33 人訂閱 訂閱系列文 RSS系列文 團隊Kotlin 愛台灣 2021
DAY 1

Day 1:同步與非同步執行

Hi 各位好,又到了我們一年一度的 iT邦鐵人賽的挑戰,這次我所挑戰的主題是 Kotlin 中用來處理非同步的 lib Coroutine,中文名稱「協程」,是...

2021-09-06 ‧ 由 Andy 安迪 分享
DAY 2

Day2:非同步執行與 Callback 的問題

在前一篇文章中,我們知道依據程式的執行順序分成兩種執行方式,一種是同步(Synchronous) 、另一種則是非同步(Asynchronous)。 同步 同步的...

2021-09-07 ‧ 由 Andy 安迪 分享
DAY 3

Day3:第一個 Coroutine 程式

在上一篇文章中,我們知道如果我們要以非同步的方式來執行,可以使用 Thread + callback 來寫,不過使用 Callback 可能會發生兩個問題,一是...

2021-09-08 ‧ 由 Andy 安迪 分享
DAY 4

Day4:Coroutine 的四大特點

在前一篇文章中,我們完成了一個 Coroutine 的程式,並且在最後我們發現了兩個特點: 用 Coroutine 完成的程式碼可以讓非同步程式碼以同步的程式...

2021-09-09 ‧ 由 Andy 安迪 分享
DAY 5

Day5:深入認識 Coroutine

這幾天我們把 Coroutine 神秘的面紗好像掀開了一點,知道他是用來解決非同步程式的問題,也我們知道四個 Coroutine 的特點。Coroutine 的...

2021-09-10 ‧ 由 Andy 安迪 分享
DAY 6

Day6:三大要素

好的好的,經過了前幾篇文章之後,想必大家應該對 Coroutine 有一些了解了吧,我在這邊快速複習一下。 Coroutine 是用來解決非同步程式的執行問題,...

2021-09-11 ‧ 由 Andy 安迪 分享
DAY 7

Day7:CoroutineScope:launch() 以及 async()

在前一篇文章我們知道 suspend 函式必須要在 Coroutine scope 裏面才能執行,本篇文章我們來了解一下兩個 Coroutine Builder...

2021-09-12 ‧ 由 Andy 安迪 分享
DAY 8

Day8:結構化併發 (Structured Concurrency)

還記得我們第一個 Coroutine 程式嗎? suspend fun showContents() = coroutineScope { launch...

2021-09-13 ‧ 由 Andy 安迪 分享
DAY 9

Day9:Job vs SupervisorJob

還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...

2021-09-14 ‧ 由 Andy 安迪 分享
DAY 10

Day10:例外處理,留下來或我跟你走

程式在執行的時候,有些時候我們會遇到一些例外的情況,我們一般會使用 try-catch 來攔截程式執行所拋出的例外,用 try-catch 攔截到之後,我們就可...

2021-09-15 ‧ 由 Andy 安迪 分享