前言
正如题所说,我对每一门编程语言的理解都是像在茫茫大海中散落着不同的小岛一样,而我们就是这片汪洋大海中的一艘小渔船,在岛屿周围不断摸索着它带给我们的财富和智慧。随着Google IO大会一开,Kotlin变成了Google支持的Android一级开发语言,一个璀璨的明星一夜之间红遍全球。这也正说明,我们所处的互联网时代是一个高速发展的变革时代,万物皆在变!各位小伙伴一定要紧跟步伐才能在这场变革中分一杯牛奶。
简单介绍
Statically typed programming language for modern multiplatform applications —— 一种静态类型的跨平台语言!
Kotlin 是一个基于 JVM 的新的编程语言,由JetBrains开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。基于JVM的语言也就意味着将会和Java有很好的兼容性,不会和现存Java程序有太大冲突,并且官方 也已说明,Kotlin是100%与Java互通!这将是Android的福音啊。 说了这么多,我们来看下怎么进行集成吧!
集成步骤
笔者是Windows + AndroidStudio开发环境,所以我在这里就只说一下相同环境下的情况啊。当然,JDK、SDK之类的基础环境就不用赘述了吧。
1、在AndroidStudio中打开Settings,选择Plugins选项,点击Browse Repositories,在打开的新窗口中搜索Kotlin,然后安装包含Kotlin关键字的支持和插件,如下图所示:
图-12、新建项目,创建项目的时候跟普通Android项目一样。然后项目创建好以后,在右键菜单New中可以看到多出来Kotlin相关的东西。其中:Kotlin File/Class —— 等同于普通Java类、Kotlin Activity —— 等同于普通Activity。
图-23、项目创建出来之后,第一次创建的时候可能会弹出提示框请求配置Kotlin相关配置和支持,但是也有小伙伴遇到没有主动弹框提示的情况,这时候就需要我们手动来配置Kotlin项目了。点击顶部菜单中的Tools,然后选择Kotlin中的 “Configure Kotlin in Project” ,之后会弹出提示框并且会自己动搜索当前支持的版本,并且可以选择给哪个Module进行配置。如下图所示:
图-3 图-44、接着你可以在Project下的build.gradle和Module下的build.gradle中看到相关的支持和配置。
图-5 Project下的build.gradle图-6 Moudle下的build.gradle
5、需要注意的是,有时候Module下的build.gradle中的顶部没有apply Kotlin相关的东西时可能会抛Unresolved reference: kotlinx异常。这时候只需要手动添加一下apply就可以了。
图-7优势和劣势
优势:
在《Kotlin for android Developers》中文翻译版(笔者英语水平很菜,将就看下中文翻译版吧)中可以看到有这些特点和优势:
1、对Java开发者来说,Kotlin是非常直觉化的,并且非常容易学习。语言的大部分内容都是与我们知道的非常相似,不同的地方,它的基础概念也能迅速地掌握它。
2、它与我们日常生活使用的IDE完全免费地整合。Android Studio能够非常完美地理解、编译运行Kotlin代码。而且对这门语言的支持来正是自于开发了这个IDE的公司本身,所以我们Android开发者是一等公民。
3、它更加易表现:这是它最重要的优点之一。你可以编写少得多的代码。
4、它更加安全:Kotlin是空安全的,也就是说在我们编译时期就处理了各种null的情况,避免了执行时异常。如果一个对象可以是null,则我们需要明确地指定它然后在使用它之前检查它是否是null。你可以节约很多调试空指针异常的时间,解决掉null引发的bug。
5、它是函数式的:Kotlin是基于面向对象的语言。但是就如其他很多现代的语言那样,它使用了很多函数式编程的概念,比如,使用lambda表达式来更方便地解决问题。其中一个很棒的特性就是Collections的处理方式。
6、它可以扩展函数:这意味着我们可以扩展类的更多的特性,甚至我们没有权限去访问这个类中的代码。
7、它是高度互操作性的:你可以继续使用所有的你用Java写的代码和库,因为两个语言之间的互操作性是完美的。甚至可以在一个项目中使用Kotlin和Java两种语言混合编程。
说了这么多是不是有人感觉就像在扯淡?其实我也差不多了,总结起来就是Kotlin大法 好!好!好!尤其是配合插件一起使用的时候,能够极大程度的简化代码,省略类似于FindViewById之类的操作。到了这你们可能又会说,现在ButterKnife不是也有这种功能吗?哼哼,这样说的小伙伴,我只能说小伙子你太年轻了。来给你看张图:
惊不惊喜?意不意外?看出来好处在哪里了吗?是不是极大的简化了代码?甚至连分号都没有了?对的!就是这么爽!爽!爽!当然你也可以配合ButterKnife等主流框架一起使用,会感觉更爽!
劣势:
当然劣势也是有一点的,函数式编程需要熟悉语法的人或者是对编程有一定经验的人才能更容易上手。尤其是配合Lambda一起使用的时候,不懂的人只是知道这代码好装逼,竟然可以写的这么精简,但是转念一想,这是什么鬼东西?根本看不懂啊!
但是终归一句话,新的语言之所以能够火起来并且干掉Java成为Android一级开发语言肯定也是有一定道理的!另外补充一点资料有兴趣的可以去看看,以加深对Kotlin的理解:Kotlin VS Java:编译速度大比拼 ,原谅我没有找到运行效率相关的文章,可能是我搜索的关键字不太对吧。
关于框架
关于框架的话,其实Kotlin应该是支持目前Java项目中的绝大部分框架体系,有兴趣的可以自行Google 。因为实在太多,这里我只说一两个,简单说明一下Kotlin是支持框架的。比如:Rx大法——RxKotlin 。
结束语
编程之路永远没有尽头,一路上磕磕碰碰是很正常的事情。希望各位小伙伴在学习的过程中多多努力。
关于Kotlin的故事我就讲这么多了,网上还有很多资料,只要你肯花时间去找总能找到你想要的。
看了这么多是不是感觉并没有什么收获?那就对了,因为我在扯淡!2333~~
网友评论