使用Kotlin協程DSL打造MVVM架構App -- 基礎知識

Coroutines, 是Kotlin的協程庫。本質上,協程是輕量級的線程,除了更高效地實現併發, 使用它還可以橋接阻塞與非阻塞的世界。簡單示例:編程

/**
* Wait one second then display a snackbar.
*/
fun onMainViewClicked() {
   // launch a coroutine in viewModelScope
   viewModelScope.launch {
       // suspend this coroutine for one second
       delay(1_000)
       // resume in the main dispatcher
       // _snackbar.value can be called directly from main thread
       _snackBar.value = "Hello, from coroutines!"
   }
}
複製代碼

DSL(domain specific language),能夠理解爲具體編程語言之上, 針對特定領域問題的語言。你們感覺下這段單元測試代碼:bash

val str = "kotlin"
str should startWith("kot")
str.length shouldBe 6
複製代碼

有沒以爲「內容引發溫馨」?架構

Data Binding 數據綁定,用於下降界面佈局和業務邏輯代碼的耦合性。具體一點講,經過將數據單向或雙向綁定到 layout 文件中,Data Binding 可以大量減小Activity或Fragment中的findViewById()/setText()/setImage()等步驟,有助於防止內存泄漏,並且能自動進行空檢測以免空指針異常。併發

MVVM(Model/View/ViewModel) 架構範式相對於MVP, 更進一步下降了View層和Presenter之間的耦合,更完全地分離了各層的關注點。上圖: dom

相關文章
相關標籤/搜索