我是Android的忠实粉丝,自从Nexus One推出以来,我就是一个。 Android操作系统已经发展了许多变化。 大约一年前,我在Twitter上关注的一位Android开发人员正在推动Kotlin成为Android的主要语言。 更有意思的是,它是由Google的Android开发者转发的。 快进到这个时候,IntelliJ团队宣布了Kotlin 1.0。
我决定看看对Kotlin的大肆宣传。 将此博客视为第一印象而不是评论。
从Java到Kotlin
Kotlin (大部分情况下)与Groovy和Scala相似,因为它在JVM上运行。 也可以将其编译为JavaScript。
我花时间先去它的官方网站学习语法。 宣传说,如果您已经使用Java编写代码,那么Kotlin应该很容易上手,并且可以与现有Java框架互操作。 我一生中一直是Java开发人员,因此我认为学习Kotlin并不难。
官方网站上有一个不错的教程部分。 以下是有关我喜欢的语法的一些有趣信息:
- 类型在变量名之后定义。
在Java中,您首先要声明类型的变量,然后再声明变量名,例如private int x;
而Kotlin等效项是var x: Int
。 也可以推断类型var x = 1 //is Int initialized to 1
。 - 可以使用
?
将变量声明为可为空?
。
例如:y?.length
。 如果y为null,则返回null。 否则返回y.length
。 - 聪明的演员! 如果变量是某种类型,则它已经被强制转换为该类型。
例如:if (a is String) print(a.length)
我还有很多喜欢的东西,但是为了简短起见,建议您访问官方网站 。
Android Studio中的Kotlin
自从我使用Android API已有一段时间了。 上次我弄乱Android应用程序的时间是在Android被称为“果冻豆”的时候。
因此,我不得不熟悉更新的API,例如RecyclerView和设计支持库中的新UI元素。 幸运的是,由于Android Studio来自Kotlin的开发者,因此很容易将Kotlin集成到SDK中。
首先,我在Android Studio中创建了一个新项目,该项目创建了默认的主要活动。 然后使用Android Studio Kotlin插件,我可以调用一个将Java转换为Kotlin的动作。 这会将MainActivity.java中自动生成的Java代码转换为MainActivity.kt中的Kotlin。 还将Kotlin依赖项添加到build.gradle中。
收起那把刀
值得一提的Kotlin一个不错的功能是,在Activity或Fragment中,您不必调用findViewById即可获取View小部件。 只需通过id引用即可。
因此,您可以直接通过myTextView
引用TextView小部件,而不是TextView myTextView = (TextView) findViewById(R.id.myTextView)
。 Kotlin将获得对该视图的引用。
那么,总体而言?
我决定不尝试制作一个Hello World应用程序或具有常规List视图的应用程序,而是尝试创建一个使用MediaPlayer API播放声音的应用程序来挑战自己。
在我对活动进行编码,扩展布局和RecyclerView适配器的过程中,我认为与Kotlin相比,我花了更多的时间回到Android API文档上。 起初,我不得不参考Kotlin文档来查找内容,直到我习惯了语法。
我最喜欢Kotlin的地方是更少的代码行。 在比较我在Java中需要花费几行代码的事情时,我可以只用一行就可以在Kotlin中完成相同的工作。 疲惫的眼睛使更少的代码行令人愉悦。 此外,样板更少,这很有用,尤其是在Android中。
安科
您还可以使用Anko ,这是用Kotlin编写的UI库。 Anko代替XML,而是使用DSL中的UI。 我对此工具赞不绝口。 但是当我开始使用Kotlin时,我想更加熟悉Android的默认XML布局UI。
也许有一天我会在Anko上写另一个博客:)。
未来…
那么,当用Android进行编码时,Kotlin确实有可能成为官方的主要选择吗?
有传言称谷歌正在寻求偏离Java进行Android开发,有报道称谷歌正在考虑采用苹果的Swift语言 。 但是,该报告还指出,由于构建时间长,Google并未考虑Kotlin。
综上所述,如果您是现有的Java开发人员,正在研究新事物或正在开发Android应用程序,我建议您研究一下Kotlin并尝试一下。
翻译自: https://www.javacodegeeks.com/2016/04/kotlin-android-first-impressions.html