写点什么

安卓上的 Kotlin:安卓 KTX、Kotlin Bootcamp Udacity 等等

2018 年 6 月 08 日

最近,谷歌展示了一系列的努力来改善 Kotlin 开发人员在安卓平台上的体验,其中包括安卓KTX Kotlin Bootcamp Udacity 课程、安卓 Studio 3.2 中的 Lint 支持等等。

谷歌产品管理总监 Stephanie Cuthbertson 说, 自谷歌去年宣布支持 Kotlin 以来,开发者社区已经接纳了该语言,95% 的开发人员说他们非常乐意使用 Kotlin 来进行安卓开发。使用 Kotlin 的 Play Store 应用程序数量自那时起已经增长了 6 倍。

Kotlin 受到官方支持以构建安卓应用程序,可以与 Java 编程语言及库完全地交互,并且包含 IntelliJ 和安卓 Studio。 Kotlin 提供强类型系统、类型推断、空安全、属性、lambdas 扩展、协程、高阶函数等。

Kotlin Bootcamp Udacity 课程是自控进度的免费在线课程,旨在教授 Kotlin 的基础知识。该 Kotlin 入门课程是由谷歌专家和 Udacity 合作创立的,适用于有一定编程经验的人员。

Kotlin Bootcamp Udacity 课程从 Kotlin 语言的基础开始,包括简单的语句,调用函数和声明类,而第二部分深入更高级的主题,如集合、常量、如何编写扩展、实现泛型、应用注解、lambda 表达式、高阶函数等。

在安卓 Studio 3.2 中已经改进了 Lint 支持,包含了很多新功能。添加了新的 Lint 检查,以确保 Java 代码和 Kotlin 代码能够良好地交互。这些检查包括查找 Nulability 注解的存在、最后放置 lambda 参数等。下面的设置语句必须添加到 build.gradle 中以启用它:

复制代码
android {
lintOptions {
check 'Interoperability'
}
}

安卓KTX 是一组作为Jetpack 一部分的可用Kotlin 扩展。它为Kotlin 的使用优化了 Jetpack 和安卓平台 API。安卓 KTX 旨在让 Kotlin 的安卓开发更简洁、愉快和符合语言习惯。它可以让你将以下 Kotlin 代码:

复制代码
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});

转换成为以下更简洁的 Kotlin 代码:

复制代码
view.doOnPreDraw { actionToBeTriggered() }

最后要提的是,安卓 Runtime(Android Runtime,简称 ART)已经在安卓 P 中进行了调优,因此用 Kotlin 构建的应用程序可以运行得更快。谷歌已经在官方文档中推出了 Kotlin 代码片段,并发布了 API 参考文档

感谢冬雨对本文的审校。

2018 年 6 月 08 日 07:311052
用户头像

发布了 199 篇内容, 共 65.2 次阅读, 收获喜欢 272 次。

关注

评论

发布
暂无评论
发现更多内容

从戚家军看组织战斗力塑造(组织的六脉神剑)

异想的芦苇

组织

典型的大型互联网应用系统的技术方案和手段

2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

2020南京国际人工智能产品展览会

InfoQ_caf7dbb9aa8a

人工智能

2020第十三届南京国际大数据产业博览会

InfoQ_caf7dbb9aa8a

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

Apache Doris在云真信智能决策分析平台的应用实践

DorisDB

数据库 数据仓库 金融科技

2020第十三届南京国际智慧停车展览会

InfoQ_caf7dbb9aa8a

20年开源老司机手把手教你玩开源——openEuler入门指南

openEuler

Linux 开源 系统操作

架构方法论之“极限审视法”

异想的芦苇

架构 方法论 设计思维

2020第十三届南京国际智慧工地装备展览会

InfoQ_caf7dbb9aa8a

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

java安全编码指南之:lock和同步的正确使用

程序那些事

java安全编码 java安全 java安全编码指南 java编码

2020南京国际工业互联网及工业通讯展览会

InfoQ_caf7dbb9aa8a

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

古北水镇的夜

张晓楠

生活 摄影

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

坚持写技术博客一年能有多少收获!

小傅哥

Java 面试题 架构师 编程经验 技术博客

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

前端进阶训练营

产品分析

时间是一个人最好的证明

产品经理 产品设计

记一次MySQL日期范围查询优化

墨凡

MySQL SQL优化

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

2020第十三届南京国际智慧新零售暨无人售货展览会

InfoQ_caf7dbb9aa8a

关于国际化语言 Intl

西贝

Java 前端 国际化 格式化

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

对不起,学会这些 Linux 知识后,我有点飘

cxuan

Linux 后端 操作系统 计算机

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

安卓上的Kotlin:安卓 KTX、Kotlin Bootcamp Udacity等等-InfoQ