kotlin for android 简介(二)

当我从what Kotlin is and what it can do for us获得一些启发之后,觉得是时候配置下 Android Studio来帮助我们使用 Kotlin 开发 Android 应用程序了。 其中有些步骤只需要在初次使用时完成一次, 但是其他一些 Gradle 配置需要为每一个新项目做一遍。 ( 译者注 : 如果你对 Kotlin 还不了解,可以先看看kotlin-for-android简介这篇文章 )

对于本系列文章, 我将创建一个我早些时候创建的Bandhook的简化版本, 它基本上就是连接到一个基于RESTful的音乐API然后接收一些乐队的信息. 链接到 Bandhook Kotlin on Github 查看源代码。

创建一个新项目然后下载Kotlin插件

就像你平常做的那样,我们只需要用 Android Studio 创建一个带 Activity 的基本 Android 项目。

一旦完成,我们需要做的第一件事就是去下载 Kotlin 插件. 去到 Android Studio 的系统设置中然后查找 plugins 之后,再次使用搜索找到 Kotlin 插件,安装并重启 IDE。

添加 Kotlin 插件的依赖到的应用程序的 build.gradle 中

该项目的 build.gradle 需要添加一个新的依赖,这个依赖将会被Kotlin插件要求以在主Module中使用:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.3'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0'
    }
}

配置 Module 的 build.grade

首先, 应用Kotlin插件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'	

接着, 添加Kotlin库到你的依赖:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.jetbrains.kotlin:kotlin-stdlib:1.0.0'
}

最后, 你需要添加我们在下一个步骤创建的Kotlin文件夹:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.0"
 
    ...
 
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

或者,你可以跳过这一步,当做完下一个步骤时,使用这个Android Studio的操作:

我更倾向于手动去做以保持我的 Gradle 文件有整洁有序, 但第二个选项可能较为容易些。

创建 Kotlin 文件夹

如果你将项目的视图从‘Android’转到‘Project’,那将会非常容易。依次选择‘app->src->main’ 然后创建一个名为 ‘kotlin’的文件夹:

将 Java activity 转换成 Kotlin 文件

Kotlin 插件能将 Java 转换为 Kotlin 类. 我们可以轻松的通过‘Code’菜单中的‘Convert Java File to Kotlin File’选项转换当前的 Activity 到 Kotlin 类 :

IDE将建议你移动新文件到Kotlin文件夹,点击‘Move File’(或者手动完成,假如你没看到这个选项)。

public class MainActivity : ActionBarActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
 
 
    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu)
        return true
    }
 
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        val id = item.getItemId()
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true
        }
 
        return super.onOptionsItemSelected(item)
    }
}

主要区别

看一看之前的代码, 我们可以看到一些明显的差异。 其中很大一部分我们将会在下一篇文章讲解到:

  • 使用冒号,而不是’extends’。
  • 显式使用‘override’: 在Java中, 我们可以使用一个注释使我们的代码更清晰,但它不是必要条件. Kotlin将迫使我们使用它.
  • 函数则使用‘fun’关键字: Kotlin是一个面向对象的函数式语言, 因此可能会与其他语言类似,例如Scala. Java方法被函数的形式表示。
  • 函数参数命名规则不同: 类型和名称都写在相反的位置,并用冒号隔开。
  • 分号可选: 我们不需要在行的结尾处加上分号。如果我们想要也可以加上, 但如果我们不这样做,它就可以节省大量的时间,并使我们的代码整洁。
  • 其他小细节: 在简介一文中, 我已经说到了 ‘?’ 的意义. 这表明参数可以为空。NULL的处理方式不同于Java。

总结

也许我们会认为使用一门新语言将会非常困难, Kotlin被JetBrains团队开发出来的,要成为最容易和可交互的语言用来覆盖那些Java的不足之处。由于Android Studio也是基于JetBrains的产品,这将让集成到这个IDE中并且开始工作非常简单。

如果没看过介绍1的话,可以看看下面两篇文章:

文章目录
  1. 1. 创建一个新项目然后下载Kotlin插件
  2. 2. 添加 Kotlin 插件的依赖到的应用程序的 build.gradle 中
  3. 3. 配置 Module 的 build.grade
  4. 4. 创建 Kotlin 文件夹
  5. 5. 将 Java activity 转换成 Kotlin 文件
  6. 6. 主要区别
  7. 7. 总结
|