
Kotlin KTX
2月5號的時候,Google 發(fā)布了一款 Kotlin 的擴展庫,叫 Android KTX,不過現(xiàn)在還處于預(yù)覽版的狀態(tài)。它能使 Android 上的 Kotlin 代碼更簡潔,從而提高開發(fā)者的效率和使用體驗。
Android KTX 其實就是一個 Kotlin 代碼的擴展庫,Google 把我們開發(fā)的時候,比較常用的一些代碼塊,進行封裝,然后在這個基礎(chǔ)上,提供更良好的 API,供開發(fā)者使用。舉個例子:以前你需要些三五行代碼才可以實現(xiàn)的功能,用上 Android KTX 之后,一行代碼搞定了。意不意外,驚不驚喜!
說明白 Android KTX 是什么之后,你是不是想說,這不就是 Java 下的 XxxUtils 庫么?
其實還真就是一樣的,只是因為 Kotlin 的 Extensions 特性,讓這個擴展庫看著更無縫了,就像是在使用一些原生的 API 一樣。
舉個例子
說的那么好,我們上幾個個官方提供的例子,來看看 Android KTX 的方便之處。
1 字符串轉(zhuǎn) URI
通常我們需要使用 Uri.parse() 方法,來講一個 String 對象轉(zhuǎn)換成一個 Uri 對象。但是 Android KTX 為 String 增加了一個擴展函數(shù)toUri(),調(diào)用一下,就解決問題了。

2 寫入 SharedPreferences
讀寫 SharedPreferences 是一個非常常見的操作,之前還需要 調(diào)用 edit() 獲取一個用于編輯的對象?,F(xiàn)在這個操作又被 Android KTX 簡化了。

3 監(jiān)聽 onPreDraw 回調(diào)
如果你想增加 OnPreDrawListener 的監(jiān)聽,Android KTX 可以幫你節(jié)省很多代碼。

這幾個例子都是 Google 博客中提及的例子,應(yīng)該算是比較有代表性的了。從例子中可以看出 Android KTX 做的就是精簡代碼的事情,讓我們開發(fā)起來更簡潔和高效。
如何使用
雖然 Android KTX 現(xiàn)在還是預(yù)覽版,但是你依然可以體驗它。只需要在 Gradle 中添加依賴即可。
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
同步一下即可使用,非常的方便。
需要注意的是,畢竟是預(yù)覽版,可能會有不確定的問題,所以 Google 推薦在正式版來臨之前,千萬不要在商業(yè)項目中使用它。
同時 Google 表示,預(yù)覽版只是一個開始,在接下來的幾個月里他們會根據(jù)開發(fā)者的反饋和貢獻,對 API 進行迭代,會在迭代的過程中,考慮 API 的兼容性。最終可能計劃將 Android KTX 作為 Android Support Library 的一部分。
感受到 Google 的誠意了吧?讓我們拭目以待吧!
Android KTX 的更多細節(jié)
畢竟是一個預(yù)覽版,本身來說到這里就已經(jīng)算是結(jié)束了,不過我們還是要看看文檔和源碼來分析一下。
簡單閱讀一下 Android KTX 的文檔,其實內(nèi)容還是很多的,不僅僅是前面舉的那些例子。
從動畫到 Text 以及 View 的處理,其實都被 Android KTX 涉及到了,算是已經(jīng)包含了大部分我們的常用操作了。
拿前面舉例的 SharePreferences 寫入的例子來看,它在 androidx.context 包下面。
看文檔寫的很清晰了,隨手試一試就能知道怎么用。
不過代碼更簡單。
有興趣可以看看文檔和 Github 上的代碼。
Doc:
https://android.github.io/android-ktx/core-ktx/
Github:
Android KXT 的代碼都很簡單,不會包含大段的代碼,都是一些小功能的封裝,有興趣直接上 Github 上閱讀即可。
簡單閱讀了代碼之后,感覺這個庫吧,不會有什么大坑,自己公司有興趣都可以參考著自己寫一個擴展庫出來。可以放心私用,不過還是期待正式版的發(fā)布。
你對 Google 發(fā)布的 Android KTX 有什么看法?不妨在留言區(qū)留言討論一下!
今天在公眾號后臺回復(fù)成長『成長』,將會得到我整理的一些學(xué)習資料,也能回復(fù)『加群』,一起學(xué)習進步。
推薦閱讀:
- 站在Android開發(fā)的角度,聊聊Airbnb的Lottie
- 漫畫:Git 二分 Debug,火速定位出錯代碼!
- 找了一天找不到 Bug ? 試試 Git 的二分法吧?。?!
- 如何更精準的在 Github 上搜索開源庫?你需要這些技巧!
- Android 開發(fā),遇上 Emoji 頭疼嗎?
