Google宣布Kotlin正式成为Android的开发语言。JetBrains终于打入最重要的市场。Java is dead, long live Kotlin!
[Kotlin](https://kotlinlang.org/)
Kotlin 是一个基于 JVM 的新的开源编程语言,由 JetBrains (Java IDE提供商) 开发。
Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
Java Bean 对比 Kotlin Bean 代码量,减少4/5
Activity.java 转成Activity.kt代码量对比,减少1/3
Kotlin保护你免受错误操作可空类型,包括来自Java
var output : String
output = null
println(output.length())
如果你检查类型是正确的,编译器会为你自动转换
fun calculateTotal(obj: Any) {
if (obj is Invoice) {
obj.calculateTotal()
}
}
Android开发:无性能影响,运行时文件非常小(1.0.3库大约736KB)。
应用程序服务器:技术不是问题,100%兼容所有JVM框架。
JavaScript:目标JavaScript中编写的Kotlin代码可在Node.js或浏览器中运行。
企业:对任何类型的企业Java EE开发使用Kotlin。
Web:无论你想要强类型的HTML,CSS构建器还是纯web开发。
安装完插件重启AS后在菜单栏里会出现以下相关选项,
通过Convert Java File to Kotlin File功能可以把项目所有类转成 .kt文件(Kotlin文件)
有两种配置方式,第一种是自动配置,新建一个Kotlin Activity,Sycn Project with Gradle File后会提示选择自动配置Kotlin gradle信息
最终里外的两个gradle文件做了这些改动:
又或者自己手写配置也是可以的
buildscript {
ext.kotlin_version = '1.0.6'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.study.eric.studyproject"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
很多安装开发者都很清楚findViewById()这个方法,毫无疑问,这是个讨厌的的编写方式,对整天代码的阅读可观性不是很好。
虽然有几个库 (butterknike)可以提供这个问题的解决方案,但是要依赖于运行时的库,它们写需要每个View的注释字段。 Kotlin Android Extensions插件允许我们获得与这些库中的同样体验效果,而无需添加任何额外的代码,实际上用法非常简单,Extensions
是Kotlin插件的一部分,开发者不需要再安装其他插件,只需要在app buiild.gradle文件中启用Extensions即可:apply plugin: 'kotlin-android-extensions
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
具体用法如下:
如果我们想要调用View上的属性(在适配器类中有用),我们还应该导入kotlinx.android.synthetic.main.activity_main.view.*