当 Kotlin 遇上 Android KTX,岂止丝滑?
2018-02-28 21:20
211 查看
Kotlin 语言自从得到 Google 的官方认定之后,在 Android 开发这条路上的发展可谓是一马平川。不仅是 Android Studio 3.0 开始默认自动支持 Kotlin 语言,还有一件更为惊喜的事。Google 于上周正式对外发布 Android KTX 预览版。Android KTX 是什么呢?简单来说,它就是类似于我们开发中常用的 Support Library 这种支持类库,提供一些非常人性化的 APIs 来帮助使用开发人员更简洁、更符合编程习惯地编写 Kotlin 代码。接下来举几个例子,来见证一下使用 Android KTX 框架前后,我们的 Kotlin 代码究竟变化多少,是不是更加简洁、自然一些。String to Uri使用 Kotlin 将一个 String 对象转化成 Uri 对象是这么写的:
val uri = Uri.parse(myUriString)Android KTX 框架在 String 的基础上进行扩展,增加更多的方法,所以上面这行代码便能这么写:
val uri = myUriString.toUri()这样的话,你不必再单独引入 Uri 类,写起来是不是有一种行云流水、一气呵成的感觉?SharedPreferencesKotlin:
sharedPreferences.edit() .putBoolean(key, value) .apply()Kotlin with Android KTX:
sharedPreferences.edit { putBoolean(key, value) }canvas path 操作Kotlin:
val pathDifference = Path(myPath1).apply { op(myPath2, Path.Op.DIFFERENCE) } val myPaint = Paint() canvas.apply { val checkpoint = save() translate(0F, 100F) drawPath(pathDifference, myPaint) restoreToCount(checkpoint) }Kotlin with Android KTX:
val pathDifference = myPath1 - myPath2 canvas.withTranslation(y = 100F) { drawPath(pathDifference, myPaint) }View onPreDraw 动作Kotlin:
view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } })Kotlin with Android KT:
view.doOnPreDraw { actionToBeTriggered() }诸如此类的例子还有很多。可以看出,使用 Android KTX 极大地简化我们的 Kotlin 代码。只要你在 app/build.gradle 文件中引入 Android KTX 的依赖配置:
repositories { google() } dependencies { // Android KTX for framework API implementation 'androidx.core:core-ktx:0.1' ... }开发时,IDE 会自动根据你的代码智能提示,自动补全相关代码。还有一点值得一提的是,Android KTX 使用一个全新的 包名前缀:androidx。Google 希望将来提供 Android Support Library 包时,开发人员能够明显地区分出 **android.* 与 androidx.* **这两种 API 的使用。这是一个体贴入微的设计细节,Google 想得非常周到。Android KTX 的源码已经放在 GitHub 仓库中,目前还在完善改进当中:https://github.com/android/android-ktx/相关推荐:Android 9.0 或将原生支持通话录音功能
转自:https://mp.weixin.qq.com/s?__biz=MzAwNzc0NjAxMg==&mid=2653392052&idx=1&sn=b6d6513fe29613fe91674f10f10594ca&chksm=80aa5407b7dddd1178357858c6c2268aba44d61109958d46c7aa50ce37bf29efded6a543785c&mpshare=1&scene=23&srcid=0228tz9GsS0pY7AyRCDH3YXx%23rd
相关文章推荐
- 当 Kotlin 遇上 Android KTX,岂止丝滑?
- Android KTX与Kotlin Android Extensions
- 隆重推出 Android KTX,让 Kotlin 的开发更美妙!
- Android开发的福音,谷歌隆重推出 Android KTX预览版,让 Kotlin 的开发更美妙!
- Android开发的福音,谷歌隆重推出 Android KTX预览版,让 Kotlin 的开发更美妙!
- android studio入门Kotlin
- Android笔记 kotlin笔记
- 使用Kotlin开发Android应用(II):创建新工程
- Kotlin for Android(四)Kotlin控制流
- 使用Kotlin简化Android开发
- Kotlin : Retrofit + RxAndroid + Realm
- Android开发者应该知道的Kotlin
- 详解Kotlin和anko融合进行Android开发
- 利用Kotlin如何实现Android开发中的Parcelable详解
- Android开发:Kotlin 取代 Java 只是时间问题?
- Kotlin 从学习到 Android 第三章 编码规范
- 【Android】使用Kotlin在Android Studio上开发App
- Android 权限管理(Kotlin)
- Android开发:为什么要使用Kotlin?
- Android 开发,你遇上 Emoji 头疼吗?