Kotlin在android studio下的初次使用

一觉醒来,发现微信群和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在android studio下的初次使用_第1张图片

只需要安装Kotlin即可, 因为Kotlin Extensions已经包含在Kotlin中了

3. 转换代码
选中需要转换的Java文件, 如MainActivity.java,
使用Ctrl+Shift+A, 启动Action, 输入Convert, 找到命令, 即可转换, 如
Kotlin在android studio下的初次使用_第2张图片

选择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等脚本语言非常类似, 容易编写.

显示结果
Kotlin在android studio下的初次使用_第3张图片
到这里,你已经不知不觉的写出了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
Kotlin在android studio下的初次使用_第4张图片

参考收集(排序没有先后):
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

你可能感兴趣的:(kotlin)