官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
2018-02-07 13:43
337 查看
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(),调用一下,就解决问题了。
2 写入 SharedPreferences
读写 SharedPreferences 是一个非常常见的操作,之前还需要 调用edit()获取一个用于编辑的对象。现在这个操作又被 Android KTX 简化了。
3 监听 onPreDraw 回调
如果你想增加 OnPreDrawListener 的监听,Android KTX 可以帮你节省很多代码。这几个例子都是 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 的文档,其实内容还是很多的,不仅仅是前面举的那些例子。
从动画到 Text 以及 View 的处理,其实都被 Android KTX 涉及到了,算是已经包含了大部分我们的常用操作了。
拿前面举例的 SharePreferences 写入的例子来看,它在
androidx.context包下面。
看文档写的很清晰了,随手试一试就能知道怎么用。
不过代码更简单。
有兴趣可以看看文档和 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,到底帮你干了什么?
- Kotlin 官方学习教程之扩展
- vue的官方脚手架vue-cli到底做了什么?(vue-cli webpack配置详解)
- 来说一说chrome扩展和chrome插件到底有什么区别?
- 扩展方法到底做了什么
- 应用软件是基于GNOME或KDE的到底是什么意思
- TACAS(International Conference on Tools and Algorithms for the Construction and Analysis of Systems)到底是什么档次的会议?
- PHP中可变变量和php可变函数到底有什么用?
- shell到底是什么意思?
- 听了老同志的教导:\r \n 到底是什么
- 在线问卷内容系统到底能帮商家什么?或许是技术运营
- PHP的文件加载机制到底是什么目录
- 【全解析】屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
- C++编译器到底能帮我们把代码优化到什么程度?
- 弱问JSP中的<%= %>和${ }到底有什么区别?
- php中的phpize是什么作用的文件? php phpize用于安装软件扩展
- Android@Kotlin(二) 界面构建与扩展方法
- 工作到底是为了什么?
- 《代码大全》到底讲什么?
- (转)招行推出的摩羯智能理财,到底是在做什么?