完整指南!深入了解 Kotlin Coroutines (協程)和 Flow,以便在您的 Android 應用程式中成功使用它們。
從這 16 小時的課程,你會學到
- 在 Android 上實現 Kotlin Coroutines 和 Flow 的最常見用例
- 深入理解 Kotlin Coroutines 和 Flow
- 學習高階 Coroutines 概念(結構化並發、協程作用域與情境、內部工作原理等)
- 學習如何使用不同的 Flow 建構器建立 Flow
- 了解 Flow 運算子(生命週期運算子、中間運算子、終止運算子)
- 了解不同類型的 Flow(常規 Flow、SharedFlow、StateFlow)
- 使用 Flow 創建一個股票即時追蹤應用
- 了解何時在 Android 開發中使用 Channels
- 理解使用 Coroutines 相對於 Callbacks 或 RxJava 的優勢
- 如何使用 Retrofit 順序和並發執行網路請求
- 如何將 Room 與 Coroutines 結合使用
- 使用 Coroutines 進行背景處理
- Coroutines 和 Flow 中的異常處理和取消
- 如何為基於 Coroutines 的實作編寫單元測試
要求
- 無需事先了解 Kotlin 協程或 Flow,但您應該熟悉 Kotlin 和 Android 的基礎知識,以及一些 Android Jetpack 元件(ViewModels、LiveData、Room)和 Retrofit。
課程說明
Google 推薦 Kotlin Coroutines 和 Flow 作為 Android 非同步程式設計的首選方案。幾乎所有 Android 開發者遲早都會接觸到這些內容。
本課程將深入說明 Kotlin Coroutines 和 Flow,並展示如何在 Android 應用中實現最常見的用例。
本課程分為兩大部分:Coroutines 部分和 Flow 部分。
在應用程式中使用 Flow 之前,我們需要先對協程有紮實的理解。因此,Coroutines 部分將首先進行講解。如果您已經有一些協程經驗,也可以直接學習 Flow 部分,並在需要時返回學習 Coroutines 部分。
在 Coroutines 部分,我們將首先詳細探討 Kotlin Coroutines 相對於其他非同步程式設計方法(例如 RxJava 和 Callbacks. )的優勢。
然後,我們將討論一些理論基礎知識,包括:
- 例程與協程( Routines vs. Coroutines )
- 掛起函數( Suspend Functions )
- 協程與執行緒( Coroutines vs. Threads )
- 阻塞與掛起( Blocking vs. Suspending )
- 多執行緒協程( Multithreaded Coroutines )
- 內部工作原理
接下來,我們將實作 Kotlin Coroutines 在 Android 應用中一些最常見的用例。這些用例包括:
- 使用 Retrofit 順序和並發執行網路請求
- 實現超時和重試機制
- 將 Room 與 Coroutines 結合使用
- 使用 Coroutines 執行背景處理
- 即使用戶離開螢幕,Coroutines 也能繼續執行。
為了提升您的學習體驗,本課程還包含一些練習,旨在挑戰您的能力。
學習 Coroutines 可能會讓人感到不知所措,因為您需要掌握許多新概念。不過,我們將從簡單的入手,隨著用例變得越來越複雜,我們將逐步學習新的概念。這些新概念包括:
- Coroutines 建構器(launch、async、runBlocking)
- Coroutines 情境
- Coroutines 分發器
- 結構化並發
- Coroutines 作用域(viewModelScope、lifecycleScope、GlobalScope)
- Jobs 和 SupervisorJobs
- 作用域函數(coroutineScope{} 和 supervisorScope{})
- 協作式取消
- 不可取消代碼
我們也將深入探討異常處理,並討論以下概念:
- 使用 try/catch 處理異常
- 使用 CoroutineExceptionHandler 處理異常
- 何時使用 try/catch,何時使用 CoroutineExceptionHandler
- 使用 launch 和 async 啟動的協程中的異常處理
- 作用域函數 coroutineScope{} 和 supervisorScope{} 的異常處理細節
單元測試對於任何程式碼庫都至關重要。在課程的最後一部分,我們將為先前實現的大多數基於協程的用例編寫單元測試。我們將討論類似的概念:
- TestCoroutineDispatcher
- 建立用於測試基於協程( coroutine )的程式碼的 JUnit4 規則
- runBlockingTest{} Coroutine Builder
- 虛擬時間
- 測試順序執行和並發執行
- TestCoroutineScope
在 Kotlin Flow 部分,我們首先會介紹所有基礎知識。我們會解答「什麼是 Flow?」這個問題,然後討論響應式程式設計的優點和缺點。
之後,我們將了解不同的 Flow 建構器( builders )和運算子( operators ):
- 基本 Flow 建構器
- 終端運算子
- 終端運算子“launchIn()”
- 終端運算子“asLiveData()”
- 生命週期運算子
- 中間運算子
在我們的第一個實際 Flow 用例中,我們將使用 Flow 建立一個即時庫存追蹤功能,該功能使用了所有可用的基本 Flow 元件。
在下一個模組中,我們將探討 Kotlin Flow 的異常處理和取消功能。
在接下來的模組中,您將學習 StateFlow 和 SharedFlow 以及以下概念:
- 如何使用
repeatOnLifecycle()掛起函數( suspend function )使 Coroutines 感知生命週期 - Hot Flows VS Cold Flows
- 使用
shareIn()運算子將 Flows 轉換為 SharedFlows - 使用
stateIn()運算子將 Flows 轉換為 StateFlows - 何時使用 SharedFlow ,何時使用 StateFlow
接下來,你將學習渠道(Channels),它們與熱流(Hot Flows)的區別,以及它們在 Android 應用中的適用場景。
在本課程結束時,你將對 Kotlin Coroutines 和 Flows 有基本的了解,並能夠編寫易讀易維護的非同步多執行緒 Android 應用程式。
目標受眾
- 想要深入了解 Kotlin 協程和 Flow,並想知道如何在 Android 上實現最常見用例的 Android 開發人員。
講師簡介
Lukas Lechner 自由職業安卓開發者
大家好,我是 Lukas。
我是一名擁有超過 15 年經驗的軟體開發人員。目前我是自由職業 Android 開發人員。
我擁有超過 7 年的 Android 開發經驗,曾參與德國、瑞士和奧地利一些最大的行動應用程式專案。
我定期在我的部落格上發表文章,並且經常在國際開發者大會上發表演講。
將複雜的技術主題分解成易於理解的部分,並以簡單易懂的方式進行講解,是我的一大愛好。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- Udemy 永久擁有課程 許多課程約 NT400 (點擊連結看更多)
- ✨年訂閱每月 NT350 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- 中文課程 – 從零開始學 Kotlin 程式設計 – 基礎入門班
- Android App 開發學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
發表迴響