一、Kotlin 的应用场景

1、Kotlin Script

  • Gradle 脚本,Gradle3.0 开始部分支出,尚在完善中

2、Java 虚拟机应用

  • Web 应用,完美支持
  • JavaFx,jdk8开始完美支持

3、前端开发

  • 1.1 开始正式支持 Kotlin-JavaScript

4、Android 应用开发

  • Kotlin 目前的主要战场

5、Native 程序

  • 直接编译 Kotlin 代码为机器码,不依赖Jvm
  • 支持与 C 代码交互
  • 技术预览版功能有限,前途无量

二、Kotlin Script 实例

1、安装 Kotlin 编译库

Windows下Kotlin命令行开发环境安装
  • 安装环境准备

Kotlin编译器:从GitHub下载,截止2017-9-5 最新版本是1.1.4,
GitHub主页

Java JDK 8,可以从Oracle官网下载,下载JDK8

  • 安装

在Windows操作系统完成JDK 8的安装以后,安装Kotlin编译器:

解压Kotlin安装包:kotlin-compiler-1.1.4.zip,本文解压到D盘kotlin目录下

将D:\kotlin\kotlinc\bin目录路径,添加到Windows系统环境变量即可

Windows 10环境变量设置:【控制面板】中直接搜索【环境变量】,然后【编辑系统环境变量】即可;

  • 验证安装是否成功

打开windows的命令行窗口
输入命令:kotlinc -version,如果提示Kotlin 1.1.4版本号,安装成功

其它可选的安装平台

在Windows和Linux、OS X上通用的安装方法:

下载Java JDK 环境安装

Linux,OS X,FreeBSB,Solaris等*Unix系统支持以下方法:

// sdkman 包管理工具
$ curl -s https://get.sdkman.io | bash

// 一定要新开终端窗口执行以下命令
$ sdk install kotlin

Max OS X 还支持以下方式:

// homebrew工具安装
$ brew update
$ brew install kotlin

2、编译执行Kotlin Script(.kts) 文件

// 编译.kts 脚本文件
kotlinc -script *.kts

// 编译源码为可运行的jar包
kotlinc D:\kotlin_code\hello.kt -include-runtime -d hello.jar

// 使用java执行hello.jar
java -jar D:\kotlin_code\hello.jar

// 使用java执行类名运行
java -cp D:\kotlin_code\hello.jar  HelloKt

// 使用kotlin执行,需要指明main类,执行类名
kotlin -cp D:\kotlin_code HelloKt

// 或者直接运行jar包
kotlin D:\kotlin_code\hello.jar

三、Kotlin Android 实例

1、Kotlin Android 插件

- kotlin.android.extensions
apply plugin "kotlin.android.extensions"

使用该插件可以在代码中省去 findViewById ,可直接使用对应 xml 布局文件中对应 View 的 id 属性定义的名称来进行相应的操作
如:

main_layout.xml

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvName"/>

MainActivity.kt

tvName.text="Hello World"
- anko 库
  • 添加 anko 库
compile "org.jetbrains.anko:anko-sdk15:0.9.1"
  • 改变 View 的setOnClickListener
tvName.onClick{view ->
    (view!! as TextView).text="${System.currentTimeMilles()}"
}
  • 改变 startActivity
val intent = Intent(this@MainAvtivity,Main2Activity::class.java)
intent.putExtra("key","From MainActivity")
this@MainAvtivity.startActivity(intent)

更改后为

startActivity<Main2Activity>("key" to "From MainActivity")
  • 代码中定义View,可无需布局文件

Main2Activity.kt

override fun onCreate(savedInstanceState: Bundle?){
    super.onCreate(savedInstanceState)
    relativeLayout{
        textView(intent.extras["key"]?.toString()?: "Hello"){

        }.lparams(matchParent,matchParent){
            gravity = Gravity.CENTER
        }
    }.lparams(matchParent,matchParent){
        gravity = Gravity.CENTER
    }
}

四、Kotlin javascript 实例

创建一个kotlin (javascript) 的项目

新建 Main.kt 文件

fun main(args:Array<String>){
    document.write("Hello World!")
}

build 该项目,会在out 下生成对应的js 文件
;页面引入对应的js文件,就可以在浏览器访问该页面了

index.html

<html>
    <head>
        <title>Hello Kotlin javasicrpt</title>
    <script src="${kotlin.js文件所在路径}/kotlin.js"/>
    <script src="${kotlin-javascript.js文件所在路径}/kotlin-javascript.js"/>
    </head>

    <body>

    </body>
</html>

五、Kotlin SpringBoot 实例

1、配置插件

buildscript{
    ext.springBootVersion = "1.5.9.RELEASE"
    dependencies{
        classpath "org.jetbrains.kotlin:kotlin-noarg:@kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:@kotlin_version"
        classpath "org.springframework.boot:Spring-boot-gradle-plugin:@springBootVersion"
    }
}
apply plugin: 'kotlin-spring'
apply plugin: 'kotlin-jpa'
apply plugin: 'org.springframework.boot'
dependencies{
    compile "org.springframework.boot:spring-boot-starter-web"
    compile "org.springframework.boot:spring-boot-starter-data-jpa"
    compile "com.h2database:h2"
    compile "com.fasterxml.jackson.module:jackson-module-kotlin:2.8.4"
}

五、Kotlin Native 实例