Kotlin——茫茫编程海洋中的一座小岛

前言


     正如题所说,我对每一门编程语言的理解都是像在茫茫大海中散落着不同的小岛一样,而我们就是这片汪洋大海中的一艘小渔船,在岛屿周围不断摸索着它带给我们的财富和智慧。随着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关键字的支持和插件,如下图所示:

图-1

    2、新建项目,创建项目的时候跟普通Android项目一样。然后项目创建好以后,在右键菜单New中可以看到多出来Kotlin相关的东西。其中:Kotlin File/Class —— 等同于普通Java类、Kotlin Activity —— 等同于普通Activity。

图-2

    3、项目创建出来之后,第一次创建的时候可能会弹出提示框请求配置Kotlin相关配置和支持,但是也有小伙伴遇到没有主动弹框提示的情况,这时候就需要我们手动来配置Kotlin项目了。点击顶部菜单中的Tools,然后选择Kotlin中的 “Configure Kotlin in Project” ,之后会弹出提示框并且会自己动搜索当前支持的版本,并且可以选择给哪个Module进行配置。如下图所示:

图-3


图-4

    4、接着你可以在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~~


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

推荐阅读更多精彩内容