(七)Kotlin 小案例与展望未来

温馨提示

写博客是为了记录在开发过程中所涉及到的技术以及遇到的问题的解决,如果该博客对您有所帮助,希望可以点个关注/喜欢;如果您对文章中的内容有什么不同的见解,欢迎留言进行讨论。谢谢!

一、Kotlin 的应用场景

1、Kotlin Script

  • Gradle 脚本,Gradle3.0 开始部分支出,尚在完善中

2、Java 虚拟机应用

  • Web 应用,完美支持
  • JavaFx,jdk8开始完美支持

3、前端开发

  • 1.1 开始正式支持 Kotlin-JavaScript

4、Android 应用开发

  • Kotlin 目前的主要战场

5、Native 程序

  • 直接编译 Kotlin 代码为机器码,不依赖Jvm
  • 支持与 C 代码交互
  • 技术预览版功能有限,前途无量

二、Kotlin Script 实例

1、安装 Kotlin 编译库

Windows下Kotlin命令行开发环境安装
  • 安装环境准备

Kotlin编译器:从GitHub下载,截止2017-9-5 最新版本是1.1.4,
GitHub主页

Java JDK 8,可以从Oracle官网下载,下载JDK8

  • 安装

在Windows操作系统完成JDK 8的安装以后,安装Kotlin编译器:

解压Kotlin安装包:kotlin-compiler-1.1.4.zip,本文解压到D盘kotlin目录下

将D:\kotlin\kotlinc\bin目录路径,添加到Windows系统环境变量即可

Windows 10环境变量设置:【控制面板】中直接搜索【环境变量】,然后【编辑系统环境变量】即可;

  • 验证安装是否成功

打开windows的命令行窗口
输入命令:kotlinc -version,如果提示Kotlin 1.1.4版本号,安装成功

其它可选的安装平台

在Windows和Linux、OS X上通用的安装方法:

下载Java JDK 环境安装

Linux,OS X,FreeBSB,Solaris等*Unix系统支持以下方法:

    // sdkman 包管理工具
    $ curl -s https://get.sdkman.io | bash

    // 一定要新开终端窗口执行以下命令
    $ sdk install kotlin

Max OS X 还支持以下方式:

    // homebrew工具安装 
    $ brew update
    $ brew install kotlin

2、编译执行Kotlin Script(.kts) 文件

    // 编译.kts 脚本文件
    kotlinc -script *.kts

    // 编译源码为可运行的jar包
    kotlinc D:\kotlin_code\hello.kt -include-runtime -d hello.jar

    // 使用java执行hello.jar
    java -jar D:\kotlin_code\hello.jar 

    // 使用java执行类名运行
    java -cp D:\kotlin_code\hello.jar  HelloKt

    // 使用kotlin执行,需要指明main类,执行类名
    kotlin -cp D:\kotlin_code HelloKt

    // 或者直接运行jar包
    kotlin D:\kotlin_code\hello.jar

三、Kotlin Android 实例

1、Kotlin Android 插件

- kotlin.android.extensions
apply plugin "kotlin.android.extensions"

使用该插件可以在代码中省去 findViewById ,可直接使用对应 xml 布局文件中对应 View 的 id 属性定义的名称来进行相应的操作
如:

main_layout.xml

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvName"/>

MainActivity.kt

tvName.text="Hello World"
- anko 库
  • 添加 anko 库
compile "org.jetbrains.anko:anko-sdk15:0.9.1"
  • 改变 View 的setOnClickListener
tvName.onClick{view ->
    (view!! as TextView).text="${System.currentTimeMilles()}"
}
  • 改变 startActivity
val intent = Intent(this@MainAvtivity,Main2Activity::class.java)
intent.putExtra("key","From MainActivity")
this@MainAvtivity.startActivity(intent)

更改后为

startActivity<Main2Activity>("key" to "From MainActivity")
  • 代码中定义View,可无需布局文件

Main2Activity.kt

override fun onCreate(savedInstanceState: Bundle?){
    super.onCreate(savedInstanceState)
    relativeLayout{
        textView(intent.extras["key"]?.toString()?: "Hello"){
            
        }.lparams(matchParent,matchParent){
            gravity = Gravity.CENTER
        }
    }.lparams(matchParent,matchParent){
        gravity = Gravity.CENTER
    }
}

四、Kotlin javascript 实例

创建一个kotlin (javascript) 的项目

新建 Main.kt 文件

fun main(args:Array<String>){
    document.write("Hello World!")
}

build 该项目,会在out 下生成对应的js 文件
;页面引入对应的js文件,就可以在浏览器访问该页面了

index.html

<html>
    <head>
        <title>Hello Kotlin javasicrpt</title>
    <script src="${kotlin.js文件所在路径}/kotlin.js"/>
    <script src="${kotlin-javascript.js文件所在路径}/kotlin-javascript.js"/>
    </head>
    
    <body>
    
    </body>
</html>

五、Kotlin SpringBoot 实例

1、配置插件

buildscript{
    ext.springBootVersion = "1.5.9.RELEASE"
    dependencies{
        classpath "org.jetbrains.kotlin:kotlin-noarg:@kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:@kotlin_version"
        classpath "org.springframework.boot:Spring-boot-gradle-plugin:@springBootVersion"
    }
}
apply plugin: 'kotlin-spring'
apply plugin: 'kotlin-jpa'
apply plugin: 'org.springframework.boot'
dependencies{
    compile "org.springframework.boot:spring-boot-starter-web"
    compile "org.springframework.boot:spring-boot-starter-data-jpa"
    compile "com.h2database:h2"
    compile "com.fasterxml.jackson.module:jackson-module-kotlin:2.8.4"
}

上一篇:(六)Kotlin 与 Java 混合开发

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容