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 -> {}
}
相关文章推荐
- 使用Kotlin开发Android应用(II):创建新工程
- 使用Kotlin开发Android应用(I):简介
- 用Kotlin开发Android应用(II):创建新项目
- 000 初步使用Kotlin开发Android应用
- 使用Kotlin开发Android应用
- Kotlin开发Android应用实例详解
- 使用Kotlin开发Android应用(III):扩展函数和默认值
- 使用Kotlin开发Android应用初体验
- 使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用(II):创建新工程
- 使用Kotlin&Anko, 扔掉XML开发Android应用
- 用Kotlin开发Android应用(IV):定制视图和Android扩展
- 使用Kotlin优雅的开发Android应用
- 使用Kotlin开发Android应用(II):创建新工程
- 用Kotlin开发Android应用(I):介绍
- 使用Kotlin开发Android应用(I):简单介绍
- 使用Kotlin开发Android应用(I):简介
- Kotlin&Anko, 扔掉XML开发Android应用
- 使用Kotlin开发Android应用教程
- 使用Kotlin开发Android应用 - 环境搭建 (1)