2.4 Android版的HelloWorld

2017谷歌I/O大会:宣布 Kotlin 成 Android 开发一级语言。

Kotlin极简教程

2017谷歌I/O大会上,谷歌宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java100%互通,并具备诸多Java尚不支持的新特性。谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。

JetBrains在2010年首次推出Kotlin编程语言,并在次年将之开源。下一版的AndroidStudio(3.0)也将提供支持。

下面我们简要介绍如何在Android上开始一个Kotlin的HelloWorld程序。

对于我们程序员来说,我们正处于一个美好的时代。得益于互联网的发展、工具的进步,我们现在学习一门新技术的成本和难度都比过去低了很多。

假设你之前没有使用过Kotlin,那么从头开始写一个HelloWorld的app也只需要这么几步:

  1. 首先,你要有一个Android Studio。 本节中,我们用的是2.2.3版本,其它版本应该也大同小异。
1. Android Studio 2.3.1
2. Build #AI-162.3871768, built on April 1, 2017
3. JRE: 1.8.0_112-release-b06 x86_64
4. JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
  1. 其次,安装一个Kotlin的插件。

依次打开:Android Studio > Preferences > Plugins,

Kotlin极简教程

然后选择『Browse repositories』,在搜索框中搜索Kotlin,结果列表中的『Kotlin』插件,如下图

Kotlin极简教程

点击安装,安装完成之后,重启Android Studio。

  1. 新建一个Android项目

重新打开Android Studio,新建一个Android项目吧,添加一个默认的MainActivity——像以前一样即可。

  1. 转换Java to Kotlin

安装完插件的AndroidStudio现在已经拥有开发Kotlin的功能。我们先来尝试它的转换功能:Java -> Kotlin,可以把现有的java文件翻译成Kotlin文件。

打开MainActivity文件,在Code菜单下面可以看到一个新的功能:Convert Java File to Kotlin File。

Kotlin极简教程

点击转换,

Kotlin极简教程

可以看到转换后的Kotlin文件:MainActivity.kt

1. package com.kotlin.easy.kotlinandroid

3. import android.support.v7.app.AppCompatActivity
4. import android.os.Bundle

6. class MainActivity : AppCompatActivity() {

8. override fun onCreate(savedInstanceState: Bundle?) {
9. super.onCreate(savedInstanceState)
10. setContentView(R.layout.activity_main)
11. }
12. }

这个转换功能,对我们Java程序员在学习Kotlin是十分实用。我们可以基于我们之前的Java编码的经验来迅速学习Kotlin编程。

  1. 配置gradle文件

MainActivity已经被转换成了Kotlin实现,但是项目目前gradle编译、构建、运行还不能执行,还需要进一步配置一下,让项目支持grade的编译、运行。当然,这一步也不需要我们做太多工作——IDEA都已经帮我们做好了。

在Java代码转换成Kotlin代码之后,打开MainActivity.kt文件,编译器会提示”Kotlin not configured”,点击一下Configure按钮,IDEA就会自动帮我们把配置文件写好了。

我们可以看出,主要的依赖项是:

1. kotlin-gradle-plugin
2. plugin: 'kotlin-android'
3. kotlin-stdlib-jre7

完整的配置文件如下:

Project build.gradle

1. // Top-level build file where you can add configuration options common to all sub-projects/modules.

3. buildscript {
4. ext.kotlin_version = '1.1.2-4'
5. repositories {
6. jcenter()
7. }
8. dependencies {
9. classpath 'com.android.tools.build:gradle:2.3.1'
10. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

12. // NOTE: Do not place your application dependencies here; they belong
13. // in the individual module build.gradle files
14. }
15. }

17. allprojects {
18. repositories {
19. jcenter()
20. }
21. }

23. task clean(type: Delete) {
24. delete rootProject.buildDir
25. }

Module build.gradle

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

4. android {
5. compileSdkVersion 25
6. buildToolsVersion "25.0.2"
7. defaultConfig {
8. applicationId "com.kotlin.easy.kotlinandroid"
9. minSdkVersion 14
10. targetSdkVersion 25
11. versionCode 1
12. versionName "1.0"
13. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14. }
15. buildTypes {
16. release {
17. minifyEnabled false
18. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19. }
20. }
21. }

23. dependencies {
24. compile fileTree(dir: 'libs', include: ['*.jar'])
25. androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
26. exclude group: 'com.android.support', module: 'support-annotations'
27. })
28. compile 'com.android.support:appcompat-v7:25.3.1'
29. compile 'com.android.support.constraint:constraint-layout:1.0.2'
30. testCompile 'junit:junit:4.12'
31. compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
32. }
33. repositories {
34. mavenCentral()
35. }

所以说使用IDEA来写Kotlin代码,这工具的完美集成会让你用起来如丝般润滑。毕竟Kotlin的亲爸爸JetBrains是专门做工具的,而且Intelli IDEA又是那么敏捷、智能。

配置之后,等Gradle Sync完成,即可运行。

6.运行

运行结果如下

Kotlin极简教程

工程源码:<https://github.com/EasyKotlin/KotlinAndroid>