![官方新出的 Kotlin 擴充套件庫 KTX,到底幫你幹了什麼?](https://i.iter01.com/images/8fab4baad52eb8e4bee18d4fdb80190325c1518231c28ee716b339feb5bb1592.jpg)
Kotlin KTX
2月5號的時候,Google 釋出了一款 Kotlin 的擴充套件庫,叫 Android KTX,不過現在還處於預覽版的狀態。它能使 Android 上的 Kotlin 程式碼更簡潔,從而提高開發者的效率和使用體驗。
Android KTX 其實就是一個 Kotlin 程式碼的擴充套件庫,Google 把我們開發的時候,比較常用的一些程式碼塊,進行封裝,然後在這個基礎上,提供更良好的 API,供開發者使用。舉個例子:以前你需要些三五行程式碼才可以實現的功能,用上 Android KTX 之後,一行程式碼搞定了。意不意外,驚不驚喜!
說明白 Android KTX 是什麼之後,你是不是想說,這不就是 Java 下的 XxxUtils 庫麼?
其實還真就是一樣的,只是因為 Kotlin 的 Extensions 特性,讓這個擴充套件庫看著更無縫了,就像是在使用一些原生的 API 一樣。
舉個例子
說的那麼好,我們上幾個個官方提供的例子,來看看 Android KTX 的方便之處。
1 字串轉 URI
通常我們需要使用 Uri.parse()
方法,來講一個 String 物件轉換成一個 Uri 物件。但是 Android KTX 為 String 增加了一個擴充套件函式toUri()
,呼叫一下,就解決問題了。
![官方新出的 Kotlin 擴充套件庫 KTX,到底幫你幹了什麼?](https://i.iter01.com/images/ebd8ddb0ee647731180db9446d8f9bc36e1297be7a53e627d234fa227f67f760.jpg)
2 寫入 SharedPreferences
讀寫 SharedPreferences 是一個非常常見的操作,之前還需要 呼叫 edit()
獲取一個用於編輯的物件。現在這個操作又被 Android KTX 簡化了。
![spdemo](https://i.iter01.com/images/f87b3b87506c032644af092eae18821fe5d63d787a28095fa025f643d0008954.jpg)
3 監聽 onPreDraw 回撥
如果你想增加 OnPreDrawListener 的監聽,Android KTX 可以幫你節省很多程式碼。
![doPreDraw](https://i.iter01.com/images/bcd9a7e9af3763d769464832c7be32e3dfa079869c6036ca25a0ad663bf56bd0.jpg)
這幾個例子都是 Google 部落格中提及的例子,應該算是比較有代表性的了。從例子中可以看出 Android KTX 做的就是精簡程式碼的事情,讓我們開發起來更簡潔和高效。
如何使用
雖然 Android KTX 現在還是預覽版,但是你依然可以體驗它。只需要在 Gradle 中新增依賴即可。
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
複製程式碼
同步一下即可使用,非常的方便。
需要注意的是,畢竟是預覽版,可能會有不確定的問題,所以 Google 推薦在正式版來臨之前,千萬不要在商業專案中使用它。
同時 Google 表示,預覽版只是一個開始,在接下來的幾個月裡他們會根據開發者的反饋和貢獻,對 API 進行迭代,會在迭代的過程中,考慮 API 的相容性。最終可能計劃將 Android KTX 作為 Android Support Library 的一部分。
感受到 Google 的誠意了吧?讓我們拭目以待吧!
Android KTX 的更多細節
畢竟是一個預覽版,本身來說到這裡就已經算是結束了,不過我們還是要看看文件和原始碼來分析一下。
簡單閱讀一下 Android KTX 的文件,其實內容還是很多的,不僅僅是前面舉的那些例子。
![Packages](https://i.iter01.com/images/bec8f638a0a7ed3e0c7fea90ed56d931e8d6da040fc7010f3a0bff432e60f02c.jpg)
從動畫到 Text 以及 View 的處理,其實都被 Android KTX 涉及到了,算是已經包含了大部分我們的常用操作了。
拿前面舉例的 SharePreferences 寫入的例子來看,它在 androidx.context
包下面。
![sp-dome](https://i.iter01.com/images/624a7a11a1976b3cec0cd2d46425092abab463f69fae5693b39da374d4cb10dd.jpg)
看文件寫的很清晰了,隨手試一試就能知道怎麼用。
不過程式碼更簡單。
![sp-code](https://i.iter01.com/images/c187e8bd30e4d025b3de63804478ec9ef34f9296e511c37562967f0b5ee0050e.jpg)
有興趣可以看看文件和 Github 上的程式碼。
Doc:
https://android.github.io/android-ktx/core-ktx/
Github:
https://github.com/android/android-ktx
Android KXT 的程式碼都很簡單,不會包含大段的程式碼,都是一些小功能的封裝,有興趣直接上 Github 上閱讀即可。
簡單閱讀了程式碼之後,感覺這個庫吧,不會有什麼大坑,自己公司有興趣都可以參考著自己寫一個擴充套件庫出來。可以放心私用,不過還是期待正式版的釋出。
你對 Google 釋出的 Android KTX 有什麼看法?不妨在留言區留言討論一下!
今天在公眾號後臺回覆成長『成長』,將會得到我整理的一些學習資料,也能回覆『加群』,一起學習進步。
推薦閱讀:
- 站在Android開發的角度,聊聊Airbnb的Lottie
- 漫畫:Git 二分 Debug,火速定位出錯程式碼!
- 找了一天找不到 Bug ? 試試 Git 的二分法吧!!!
- 如何更精準的在 Github 上搜尋開源庫?你需要這些技巧!
- Android 開發,遇上 Emoji 頭疼嗎?
![官方新出的 Kotlin 擴充套件庫 KTX,到底幫你幹了什麼?](https://i.iter01.com/images/aadf79c1ca25e70f2997b80eab24b51c279cf4ddf12a09474a4d11447b403e6d.jpg)