Kotlin 环境部署及初窥

post_header

先祭出 Google 官方入门文档传送门,墙内的朋友们掰掰

Kotlin 介绍

Google 官方的 Kotlin Sample

Kotlin 在线测试工具

Android Studio Preview v3.0 下载地址

嗯,根据 Google 文档中对 Kotlin 的介绍我找了十分之一的内容如下

  • Best of all, it's interoperable with our existing Android languages and runtime. So we're thrilled to make Kotlin an official language on Android.
  • The JetBrains team has been working for years to make sure Kotlin works great with IntelliJ IDEA. So we're inheriting all their hard work. Starting with Android Studio 3.0, tooling support for Kotlin is bundled directly into Android Studio.
  • And while we're adding Kotlin as an official Android language, we're also expanding our investment in our existing languages.

翻译过来意思就是,Kotlin 很好用,Kotlin 很好用,Kotlin 将成为我们的官方语言。嗯,大概就是这个意思

扯远了

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发,Android Studio 也是由 JetBrains 公司和 Google 携手在的 IntelliJ IDEA 基础上开发出的

Kotlin 的 v1.0 正式版本于 2016.02.15 发布,其实早在之前就有开发者在使用了,号称是 Android 中的 Swift

说再多也是无用功,做技术的就得实践

Kotlin 环境准备

Android Studio 2.x 用户请看这里

在 Android Studio 2.x 版本中要想使用 Kotlin 语法,需要安装一个插件

在 Android Studio 的启动界面(选择项目的界面)中进行,依次点击 Configure > Plugins,然后在搜索栏中输入 Kotlin,点击安装即可,如图

Install Plugins

Android Studio Preview 3.0 用户请看这里

从 Android Studio v3.0 开始,会将 Kotlin 自动集成到开发环境中

安装完成

安装完成后,在创建项目和类时便可以选择使用的语言了

和 Apple 的规则一样,Google 推荐使用 Kotlin 但不强制,开发者可自由选择

在集成 Kotlin 的环境中使用纯 Java 的代码或 Native 开发都不会有影响

而且在 Java 代码中可以很方便的调用 Kotlin 的代码,在 Kotlin 中也可以编写 Java 代码

Kotlin 初窥

打开 Android Studio,创建一个新项目,如图,勾选 Include Kotlin Support,然后 Next,Next,Finish 即可

Create Kotlin Project

打开项目之后,先别急着写代码,看看支持 Kotlin 的项目有哪些变化

项目结构图

项目整体结构与 Android 的 Java 项目一样

细心的朋友可能已经发现了,IDE 对 Java 的文件和 Kotlin 文件在小图标上已经进行了区分,而且 Kotlin 语法的文件是由 .kt 结尾,而不是 .java

另外,在项目级的 build.gradle 中,多出了一句 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.3-2"

在 app 目录下的 build.gradle 中,比传统项目多了如下两句引用 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'

由此可见,Android 是通过插件的形式将 Kotlin 集成到项目中的

好了,Hello World 走一波

代码编写

因为是简单的 Hello World,就只给出 Kotlin 的实现代码了,布局内容可自行创建

package top.devtool.kotlindemo

import android.app.Activity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

class MainActivity : Activity() {

    // 声明变量的语法1
    private lateinit var tvInfo:TextView
    // 声明变量的语法2
    private var btnSetValue:Button? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        tvInfo = findViewById(R.id.tvInfo)
        btnSetValue = findViewById(R.id.btnSetValue)

        // 为按钮绑定事件
        (btnSetValue as Button).setOnClickListener {
            setTextValue("Hello Kotlin at " + getCurrentTime())
        }

    }

    // 声明带参数的函数
    fun setTextValue(text: String) {
        if (tvInfo != null)
            tvInfo.text = text
    }

    // 声明带返回值的函数
    fun getCurrentTime(): Long {
        return System.currentTimeMillis()
    }

}

上述代码中 btnSetValue 的声明如果修改成和 tvInfo 的声明一样

那么绑定事件时就不需要做类型转换了

private lateinit var btnSetValue:Button
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        tvInfo = findViewById(R.id.tvInfo)
        btnSetValue = findViewById(R.id.btnSetValue)

        // 为按钮绑定事件
        btnSetValue.setOnClickListener {
            setTextValue("Hello Kotlin at " + getCurrentTime())
        }
    }

一脸懵逼

看完有没有震惊了吗 哈哈哈

其实 Kotlin 的语法感觉和 JavaScript 还是很像的,至于有没有更像其他语法就不得而知了,大神勿喷

另外留个彩蛋,不熟悉 Kotlin 语法一点关系都没有,项目集成 Kotlin 插件之后,我们可以在 IDE 的导航栏中的 Code 菜单最后一项找到一个神奇的功能,就是一键将选中的 Java Class 转换成 Kotlin 代码,不用谢我。个人觉得理解自己用 Java 实现的代码的 Kotlin 版本,会比看文档其他的来的快

至于转换会不会出现什么 bug 目前没有发现,有发现问题的小伙伴请留言告知

因为 Hello World,也说了这么多。后面会继续给大家带来更多关于 Kotlin 使用和语法介绍的文章

最后修改:2017/09/12 20:46
如果觉得我的文章对你有用,请随意赞赏

发表评论

颜文字