谷歌在Google I / O 2017上宣布支持Android中的Kotlin,但是Kotlin应该是20年前编程语言Java的首选吗?让我们来看看。

关于Kotlin及其崛起

Kotlin已成为官方编程语言,并且是Android Studio 3.0版本的一部分。在很短的时间内,语言引起了如此多的关注,以至于人们已经开始着手解决Java是否能够掌握Android应用程序开发的问题,或者这个几十年前的语言是否会被Android世界中的Kotlin所取代。

Kotlin可能会改变应用程序开发范例,因为它更加开发人员友好并大大增强了代码的可读性, 因为它消除了Java的一些复杂性。

你为什么要搬到Kotlin?

简洁

Kotlin消除了空引用,它没有检查异常 – 这两种异常都允许我们摆脱样板代码,从而产生更清晰,更易读的代码。

现在让我们举一个名为FoodZy的食品订购应用程序的例子。它的菜单项的Java中的POJO类看起来像:

在Kotlin看起来像:

使用Kotlin的数据类概念。

findViewById不再是

在Kotlin中,Android扩展允许您将View的引用导入到Activity文件中,因此您可以使用View,因为它现在是该Activity的一部分。这意味着您不再需要使用findViewById识别每个View,它可以转换代码,例如:

进入更简洁:

Android KTX

Android KTX是一组Kotlin扩展,是Android Jetpack系列的一部分。Android KTX背后的动机是利用Kotlin语言功能(如扩展函数/属性,lambdas,命名参数和参数默认值),使Kotlin的Android开发更加简洁,愉快和惯用。因此,Android KTX不会向现有的Android API添加任何新功能。

看起来KTX的目标是继续利用kotlin为我们的项目带来的优势,即更少的代码,更多的乐趣和更简单的理解项目。

目前,该库正处于预览状态,因此它可能会发生变化,并且很可能在发布时提供额外的功能。让我们来谈谈Android KTX将如何改变应用程序开发范例。

SQLite游标

Cursor类有一组可用的函数。对于每个函数,我们有三种不同的方法来获取值,如下所示:

第一个函数返回非null类型

第二个函数使用给定的列名返回数据类型(或null)

第三个函数使用给定的索引返回数据类型(或null)

文本

在大多数应用程序中,我们在整个项目的某处使用了文本,幸运的是,KTX在这些部分提供了一些扩展功能。对于文本,我们基本上有一些可用于SpannableStringBuilder类的函数。

例如,在实例化Builder实例后,我们可以使用构建方法附加一些粗体文本:

还有许多更棒的扩展可以简化和减少我们的代码。我很高兴从现在开始在我的项目中使用这些,我很期待看到其他很快就会添加的内容。

如果您想了解更多有关Kotlin应用开发的信息,请与我们分享您的观点。