爲什麼 Android 開發者都應該嘗試一下 Anko?

簡評: 這裏介紹的僅僅是 Anko 中很小的一部分,Kotlin + Anko 真的讓 Android 開發簡化了不少,用了 Anko 基本就可以告別那些什麼 Android 不得不知的代碼收集貼了。

Anko 是 JetBrains 針對 Kotlin 推出的 Android 開發庫,其目的是通過 Kotlin 讓 Android 開發更加簡單。

Anko 主要有四個模塊:

  • Commons
  • Layouts
  • SQLite
  • Coroutines

在這篇文章中,我們先主要介紹其 Commons 模塊中的一些內容:

首先,View.setOnClickListener 方法可以說是廣大 Android 開發者寫得最多的方法之一了,如果你是用 Kotlin,那麼代碼看起來應該是類似這樣的:

button.setOnClickListener(object : View.OnClickListener{
 override fun onClick(v: View) {
 }
})

通過使用 Anko 可以把代碼縮減爲:

button.onClick { }

Intent

當我們希望跳轉到新的 Activity 時,代碼類似這樣:

val intent = Intent(this, MainActivity::class.java)
intent.putExtra("id", 5)
intent.putExtra("name", "John")
startActivity(intent)

而通過 Anko:

startActivity<mainactivity>("id" to 5, "name" to "John")

Anko 還封裝了一些常用的功能,讓我們無需定義 Intent:

browse("https://makery.co")
share("share", "subject")
email("[email protected]", "Great app idea", "potato")

尺寸的單位問題

通過 Anko,Android 中的尺寸單位換算也變得無比簡單:

val dpAsPx = dip(10f)
sp(15f)

API level 的問題

碎片化是 Android 開發者必須要面對的問題,我們不希望不管那些還在用舊版本的用戶,但也希望能使用新 Android 版本中酷炫的功能。最常見的做法是像這樣:

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }

現在讓我們看看 Anko 是怎麼做的:

doIfSdk(Build.VERSION_CODES.LOLLIPOP){ }
doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }

真是簡單又易懂。

處理線程

處理多線程一直都不太容易,但在 Android 開發中我們經常需要面對。在 Anko 中的做法會相當的簡潔:

doAsync {
 //IO task or other computation with high cpu load
 uiThread {
   toast("async computation finished")
 }
}

集成 Anko

如果你也心動了,想嘗試一下,可以通過下面的方式來集成 Anko:

ankoVersion = "0.10.1"
dependencies {
 compile "org.jetbrains.anko:anko-appcompat-v7-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15:$ankoVersion"
}

不誇張的說,Anko 可以算是我學習 Kotlin Android 開發的一個重要原因了。


原文鏈接: Why every Android developer should use Anko - Kotlin Development
推薦閱讀: 跨瀏覽器問題的五種解決方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章