您的位置:首页 > 移动开发 > Android开发

Kotlin大法好,用Kotlin开发Android应用

2016-08-16 18:48 218 查看
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。JetBrains,作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。萌萌的小茶壶,比猫屎咖啡(Java)不知道高到哪里去了好了言归正传,对于kotlin的前世今生咱就不多赘述了,有兴趣的可以自己百度了解==============================长长的分割线======================================自问自答时间question:1.好好的java不用,为毛要用kotlin2.相比java,kotlin又有什么不同之处3.java转kotlin短期内是否能够用好,已有的项目转换到kotlin是否便捷4.blablablabla.....           answer:1:java: 大家都不陌生了,冗长的代码结构,永远敲不完的new,一言不合就get(),set(),toString(),啰啰嗦嗦没完没了.kotlin: lambda、deferred method、stream语法糖(java需要JDK8),C#的delegate、类scala语法和类型推断、ruby的codeblock 等特性,打字简短,关爱键盘。总结:面对这么多优点,你有什么资格不努力?哦不,你有什么资格不用kotlin??2:java: Fatal Error NullPointException,FatalError NullPointException,FatalError NullPointException,FatalError NullPointException,  Fatal Error NullPointException,FatalError NullPointException,FatalError NullPointException,FatalError NullPointException,Fatal Error NullPointException,FatalError NullPointException,FatalError NullPointException,就问你怕不怕?kotlin: kotlin加入空安全类型,对于不可空类型,可以直接调用它的成员变量或者函数,但是对应可空类型,直接调用成员变量或者函数将会编译不        通过,相当于直接在语法层面做出了限制。扩展函数功能使得我们可以为现有的类添加新的函数,而不用修改原来的类。总结:kotlin的优越之处不仅仅限于此,java有的,kotlin都有,反观java,高下立判3:java: 不做讨论kotlin: 学习kotlin的前提是能够掌握java基础,以我本人为例,看博客看论坛,也就三两个小时,大体上能摸个半生不熟了,况且就算不懂kotlin的语               法,java代码还能一键转换kotlin,kotlin中能直接引用已有java方法,java也能够直接使用kotlin的方法,实在玩不下去了,之前的代码也不需要推到重来。总结:无痛转换哪家强?      4:java: blablablablakotlin: for(iin0..Integer.MAX_VALUE-1) {blablablablabla}总结:.......==============================长长的分割线x2======================================Kotlin的部署以Android Studio为例,第一步,安装Kotlin插件第二步,root build文件添加依赖
``` java
buildscript {
ext.kotlin_version = '1.0.3'
ext.anko_version = '0.9'
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'me.tatarka:gradle-retrolambda:3.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
```
第三步,为module build文件添加依赖``` java
//kotlin支持库
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
//kotlin的UI框架Anko支持库 
compile "org.jetbrains.anko:anko-sdk15:$anko_version"
compile "org.jetbrains.anko:anko-support-v4:$anko_version"
compile "org.jetbrains.anko:anko-percent:$anko_version"
compile "org.jetbrains.anko:anko-cardview-v7:$anko_version"
compile "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
compile "org.jetbrains.anko:anko-design:$anko_version"
compile "org.jetbrains.anko:anko-recyclerview-v7:$anko_version"
```==============================长长的分割线x3======================================Kotlin代码示例kotlin中代码的继承省略掉了extends,implements关键字,直接使用:号表示,混合使用或者引用多个接口和java一样使用","逗号分隔,编译器会自动识别是继承还是           引用重写方法使用override fun 关键字表示,不再需要注解@符号,截图中的LayoutMain().setContentView(this)使用了kotlin的Anko编写的DSL布局,后面再介绍~~~循环for循环java
for (int i = 0; i < 5; i++)
kotlin
for (i in 0..4)
switchjava
switch (0){case 0:break;case 1:break;case 2:break;}
kotlin
when (0) {0 -> {}1 -> {}2 -> {}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息