Kotlin Coroutines 和 Flow 在 Android 開發的應用

完整指南!深入了解 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 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading