首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发者是时候转向Kotlin了

概述

作为一个目前主要从事Android开发的开发者,最早大概是在2017年3月第一次听说了这门开发语言,但是真正去了解还是在Google2017年的Google IO上宣布采纳为Android官方开发语言的时候。众所周知,当年借着的春风换发了第二春,这么多年过去了,Oracle与Google的官司一直纠缠不清,这就给了Google足够的理由寻找的替代品。虽然在17年5月份中,Google官方宣称,不是要取代,会长期共存。但是到目前为止,看到的都是Google在Android开发上正在向倾斜。

例如你打开Android开发者官方网站,映入眼帘的是这样的

Kotlin简介

关于官方网站如是说:

Statically typed programming language for modern multiplatform applications

一门可用于跨平台开发的静态类型的编程语言。

是由JetBrains团队开发,就是那个做超牛逼的公司,例如IntelliJandReSharper.

致力于跨平台开发,可以编译成字节码运行在上,可以编译成针对平台的字节码运行在Android虚拟机中(Dalvik和ART)上,可以编译成运行在浏览器上,也可以编译成原生库运行在没有虚拟机的系统上,例如设备或者其他嵌入式设备。

听起来真牛逼啊,那我们接下来看看它对其他开发语言,特别是Java,有什么优势。Java即将受到一万点伤害,因为我们主要和比较,谁让我们这个专栏是有关于开发的呢,而对新版本的支持又是如此的缓慢,到目前为止只能使用的部分功能。

与Java的互操作性

号称与可以100%互操作,即可以互相调用,其实主要是Kotlin调用java了,因为Java作为传奇前辈,有许多优秀的类库和框架,以及遗留代码。为了使Kotlin能更大程度的被开发者接受,Java这颗大树一定的傍。

语法简洁

这可能是Kotlin与Java比起来让人一眼就能发现的优点,摒弃了Java冗长的语法。

让我们直观感受一下,下面的代码创建了一个(Plain Ordinary Java Object),其自动实现了,,,,和,这要是用Java写估计的上百行代码。

data class Customer(val name: String, val email: String, val company: String)

避免了臭名昭著的空引用(NullPointerExceptions)

这个相信有过Java编程经验的同学都深有体会,不知道什么时候程序就闪崩了(crash),英文世界经常说它是一个十亿美金的错误(Billion Dollar Mistake)。

而在Kotlin中,如下代码,如果定义output为非空字符串的话,赋空值是编译不过去的。

var output: String

output = null // 编译报错,无法通过编译

工具友好

就像Microsoft的Visual Studio之于,JetBraints的Intelij Idea对自己的的支持绝对是全方位的。相信用过Intelij的你再也不想碰Eclipse了。

上面四点也是官方宣称的优势,其实语言的很多特性,在上很多年前就有了,只能说不是做的太好,只怪走的太慢。

Kotlin之于Android

官方已于2017年接纳为官方开发语言了,也从3.0开始也原生支持了Kotlin。到目前为止,Google有主推来做开发的趋势。

Kotlin从兼容性,执行效率,与java互操作性,编译时间上与Java相比都没有劣势,但是会稍微增加apk的尺寸,大概100K,还有几百个函数。而这些和以上描述的优点相比都不是事儿,毕竟我们在APP中加个广告SDK都要好几百K,你们觉得呢?

下篇我们将会正式进入使用Kotlin做Android的探索。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180418G0U5S900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券