官方新出的 Kotlin 擴展庫 KTX,到底幫你干了什么?

202.png

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)用一下,就解決問題了。

WX20180206-194945.png

2 寫入 SharedPreferences

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

spdemo.png

3 監(jiān)聽 onPreDraw 回調(diào)

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

doPreDraw.png

這幾個例子都是 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)容還是很多的,不僅僅是前面舉的那些例子。

Packages

從動畫到 Text 以及 View 的處理,其實都被 Android KTX 涉及到了,算是已經(jīng)包含了大部分我們的常用操作了。

拿前面舉例的 SharePreferences 寫入的例子來看,它在 androidx.context 包下面。

sp-dome

看文檔寫的很清晰了,隨手試一試就能知道怎么用。

不過代碼更簡單。

sp-code

有興趣可以看看文檔和 Github 上的代碼。

Doc:

https://android.github.io/android-ktx/core-ktx/

Github:

https://github.com/android/android-ktx

Android KXT 的代碼都很簡單,不會包含大段的代碼,都是一些小功能的封裝,有興趣直接上 Github 上閱讀即可。

簡單閱讀了代碼之后,感覺這個庫吧,不會有什么大坑,自己公司有興趣都可以參考著自己寫一個擴展庫出來。可以放心私用,不過還是期待正式版的發(fā)布。

你對 Google 發(fā)布的 Android KTX 有什么看法?不妨在留言區(qū)留言討論一下!

今天在公眾號后臺回復(fù)成長『成長』,將會得到我整理的一些學(xué)習資料,也能回復(fù)『加群』,一起學(xué)習進步。

推薦閱讀:

公眾號底部二維碼.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容