一觉醒来,发现微信群和qq群里不再是各种斗图了,而是谷歌在今日举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。。那么你知道Kotlin是什么吗?如果还不知道那就赶紧自行百度一下。
好了咱们言归正传,首先看下Kotlin的基本语法片段:
fun main(args: Array<String>) {
var x = 5 // 变量推导出Int类型
val a: Int = 1 // 常量立即初始化
val b = 2 // 推导出Int型
val c: Int // 当没有初始化值时必须声明类型
c = 3 // 赋值
println("a = $a, b = $b, c = $c")
}
class MyView : View { //继承关系
constructor(ctx: Context) : super(ctx) {
}
constructor(ctx: Context, attrs: AttributeSet) : super(ctx,attrs) {
}
}
这只是代码中的一小部分摘出来的,想要了解更多,请大家去移步官方给出的基本语法中文版Kotlin的基本语法
Kotlin作为Android社区当前比较热的讨论内容, 已经发布了1.1.1版本, 并且得到了一些Google开发者的关注, 毕竟Android Studio是基于JetBrains的框架. Java文件可以直接转换为Kotlin文件, 两者具有非常强的互操作性.
现在咱们的目的是用Kotlin写出 Hello Kotlin!那么现在咱们的问题是如何集成Kotlin在android studio中,大家都知道android studio 3.0默认支持Kotlin ,可是现在同学们使用的大部分是2.2~2.3,所以需要集成插件。怎么配置呢?别着急,Follow me
1.配置项目
新建一个空的Android项目.
项目gradle:
添加Kotlin的版本号, 使用目前最新的1.1.1, 保持版本一致.大家可以自行去看下最新版本。
buildscript {
ext.kotlin_version = "1.1.1"
}
模块gradle:
添加类的路径, 必须在模块中添加, 因为kotlin-android-extensions插件会使用依赖.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
添加Kotlin支持Android的插件
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
kotlin-android用于编译Android代码, kotlin-android-extensions用于扩展绑定关系.
添加Java的编译路径, 在main中创建kotlin文件夹, 用于存放kotlin代码(建议).
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
添加maven的依赖.
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
完整的支持Kotlin的模块build.gradle.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.jmf.kotlin"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
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'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
2. 安装插件
Android Studio的Kotlin插件, 用于支持Kotlin的语言特性.
选择: Preferences -> Plugins -> Install JetBrains plugin -> kotlin
只需要安装Kotlin即可, 因为Kotlin Extensions已经包含在Kotlin中了
3. 转换代码
选中需要转换的Java文件, 如MainActivity.java,
使用Ctrl+Shift+A, 启动Action, 输入Convert, 找到命令, 即可转换, 如
或
选择Code -> Convert Java File to Kotlin File, 也可以使用快捷键.
把.kt的文件剪切到kotlin文件夹下, 即可使用.
推荐Kotlin文件和Java文件分开存放, 不过放在一起也可以使用.
4. 添加资源
Kotlin的代码非常简洁, 设置属性也比较方便.
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
main_tv_message.text = "Hello Kotlin!"
main_tv_message.textSize = 20.0f
}
}
id是main_tv_message的TextView, 设置text为”Hello Kotlin”.
代码风格与Python等脚本语言非常类似, 容易编写.
显示结果
到这里,你已经不知不觉的写出了Hello Kotlin。庆祝一下吧,注意下方袭来高能,一大波干活正在接近中…
5.你不得不收藏的干货–学习资料整理
1.官方资料
首发的肯定是kotlin的官方github地址了:
https://github.com/JetBrains/kotlin
首发的肯定是kotlin的官方github地址了:
https://github.com/JetBrains/kotlin
晚上看了下trending,稳稳的站在第一。
平时大家没事,可以看看github trending,会有很多的新新优质资源。https://github.com/trending/java
Readme中包含官方的tutorials、推荐的图书《Kotlin in Action》、《Kotlin for Android Developers》以及其他资源。
英文不太好的不要担心,有官方中文翻译站点:
https://www.kotlincn.net/docs/reference/
https://www.gitbook.com/book/hltj/kotlin-reference-chinese/details
(2)《Kotlin for android developers》中文版翻译
https://github.com/wangjiegulu/kotlin-for-android-developers-zh/blob/master/README.md
支持在线阅读和下载pdf~
(3)张涛的开源实验室
之前在推送中推荐过张涛的博客,博客质量都很高,在很早的时候就开始编写Kotlin相关博客,此外还有很多比较新的知识~
https://kymjs.com/column/kotlin.html
(4)大精-wing的地方酒馆
让你的代码量减少3倍!使用kotlin开发Android系列~
http://androidwing.net/index.php/89
还有个Kotlin项目:
https://github.com/githubwing/GankClient-Kotlin
(5)Kotlin 视频教程
竟然还有视频教程~~
Kotlin从入门到『放弃』系列 视频教程
随着Kotlin越来越成熟稳定,我已经开始在生产环境中使用它。考虑到目前国内资料较少,我录制了一套视频教程,希望以此抛砖引玉,让 Kotlin 在国内火起来。
https://github.com/enbandari/Kotlin-Tutorials
可以百度云下载或者腾讯视频在线观看。
腾讯视频:http://v.qq.com/boke/gplay/903446d6231d8612d198c58fb86eb4dc_t6d000101bd9lx1.html
百度云:
http://pan.baidu.com/s/1nvGYAfB
(6)开源项目
一个用Kotlin写的简单漫画APP
https://github.com/wuapnjie/PoiShuhui-Kotlin
这个是我从俊林的文章中偷来的,如果有推荐可以留言~
(7)其他文章
为什么我要改用Kotlin
http://droidyue.com/blog/2017/05/18/why-do-i-turn-to-kotlin/
by:技术小黑屋
Android开发必备知识:为什么说Kotlin值得一试
https://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=404087761&idx=1&sn=d80625ee52f860a7a2ed4c238d2151b6
by:腾讯Bugly公众号
使用Kotlin进行Android开发
http://ragnraok.github.io/using-kotlin-to-write-android-app.html
by:Ragnarok Zhou
最后要非常感谢,今天给我投稿的朋友(汇总资料,就直接放出了链接啦)~
使用Kotlin在Android Studio上开发App
http://blog.csdn.net/qq_25867141/article/details/52875330
by:Blincheng
好文有很多,感谢所有人的分享~
在学习Kotlin中难免会遇到一些不懂的和一些坑,这时候就需要大家相互分享和提点,这里推荐一下Kotlin社区,欢迎大家来交流。
下面附上qq群:302755325
参考收集(排序没有先后):
1.http://kotlin.hywt.net
2.https://blog.jetbrains.com/kotlin/2016/02/kotlin-1-0-released-pragmatic-language-for-jvm-and-android/
3.https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/GettingStarted/Basic-Syntax.html
4.http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650823035&idx=1&sn=2db4eea9eb569bf375f847f36b1229fa&chksm=80b78de5b7c004f3c3f0a54b535671971f91708def1faecb4b1a4628bb7efb9d00392f11beca&mpshare=1&scene=1&srcid=0519pLlV7wDYL6GwD4nX0SO7#rd
5.http://www.jianshu.com/p/cf1f96c56150