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