Android Kotlin 初体验

作者: MeloDev | 来源:发表于2017-06-01 22:23 被阅读405次

    Android Kotlin 初体验

    本文原创,转载请注明出处。
    欢迎关注我的 简书 ,关注我的专题 Android Class 我会长期坚持为大家收录简书上高质量的 Android 相关博文。

    写在前面:
    好久不见,最近有一些朋友私信我,说你去哪里了,怎么不见你写东西,是不是沉溺学习,无法自拔。说来惭愧,在我消失的漫长得三个月以来,知识水平到没怎么提升,体重倒是飞速增长。和毕业之初基本上胖若两人 〒△〒 。还迷上了守望先锋和一款篮球游戏,别说自从当上了程序猿,从程序的角度思考游戏,技术突飞猛进,上分刷刷的 (ง •̀_•́)ง┻━┻。好了,关于生活方面的以后单开文章和大家聊,下面进入正题,kotlin。

    Kotlin 简介

    其实在我初学 Android 的时候,就听群里的朋友说过这个语言,我们可以把它暂时类比成 iOS 上的 swift。还是去打开官网看看原汁原味的介绍吧:

    kotlin 官网(速度较慢时,科学上网)

    Statically typed programming language for modern multiplatform applications

    现代多平台上的静态编程语言

    我们都知道在 2017.5.17 的 I/O 大会上,Google 宣布将 kotlin 正式添加成为 Android 官方支持的语言。这是首先就要强调,如果没有这一事件,我肯定不会写这篇文章。毕竟在语言的发展中,被钦定和野生的明显不是一个待遇。如果不是 iOS,会有人用 OC 吗?我们继续来看 kotlin 官网上关于 Android 相关的消息。

    android-announces-support-for-kotlin

    在这篇文章中,可以初步的去了解 kotlin 的语法,感受它的清晰简洁。然而在这篇文章中,我认为最重要的一句话是这句:

    Kotlin is also a great match for the existing Android ecosystem. It is 100% compatible with the Java programming language.

    也就是说 kotlin 与 java 百分百是互通兼容的,可以完美地融入目前 Android 的生态系统。可以想象,如果 kotlin 做不到这点,即便它语法再简洁、高效,和人类语言一样自然易懂,但是想迫使 java 这样的巨人转身,还是太难了。所以如果我们想用 kotlin 替换 java,基本上风险很小,现有数量庞大的 java 库我们也可以直接用 kotlin 无缝对接,想想就开心吧。

    创建一个 kotlin Application

    Android Studio 对 kotlin 在 version 3.0 上开始,所以我们去下载一个。

    Android Studio 3.0

    下载完成并且安装之后,新建一个 Project。我们看到界面上有个 kotlin 支持的选项。

    kotlin support

    一路点击确定之后,项目就新建完成了,这里想说下,似乎 Android Studio 3.0 需要 gradle 版本在 3.5.0+

    项目创建成功之后:

    这里写图片描述

    除了之前的 .java 文件变成了 .kt 文件,其他的都没什么变化。这就是一个 kotlin 编写的 Empty Activity。

    如果我已有一个一些 java 代码,我想把它转换成 kotlin 的怎么办? 刚才我们说了 It is 100% compatible with the Java,所以显然有现成的方案:

    java 类 转换成 kotlin 类

    duang~

    kotlin 类

    怎么样,强大不强大~

    点击一个按钮,看看怎么写:

    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            val floatingActionButton = findViewById(R.id.fab) as FloatingActionButton
    
            floatingActionButton.setOnClickListener {
                Toast.makeText(this, "fab on click...", Toast.LENGTH_SHORT).show()
            }
        }
    }
    

    还在用 findViewById? 不想这么写,也不用 ButterKnife 怎么办?继续看:

    首先在 build.gradle 文件中,加上这样的一行:

    apply plugin: 'kotlin-android-extensions'
    

    在 MainActivity 中导入所在布局中的所有元素,看到这里你肯定知道,activity_main是可以替换的。

    import kotlinx.android.synthetic.main.activity_main.*
    

    然后在 xml 中定义一个 TextView,id 是 tv_kotlin。
    然后这样:

     tv_kotlin.setText("Hello World!")
    

    运行后发现 Hello World! 就跑在屏幕上了~

    在每个 kotlin Activity 中,还有一个隐藏的缓存功能(hidden caching),使方法变得更小,这样不会增加 APK 包的大小。

    本文并不打算去过多介绍 kotlin 的语法,毕竟有官方文档呢,相信想学的肯定会去看,我自己也在研究中,未来会克服惰性和拖延症,争取多敲一些代码,多写一些文章。

    Kotlin 相关资料

    整理了一些 kotlin 的资料~

    (最开始不知道原来还有中文官网,吭哧吭哧翻译英文的。。。想打人)

    写在后面:
    最近我也在看 kotlin doc 上面的语法,我个人觉得确实具有现代语言的优秀特性,将来 kotlin 是否能取代 java,个人觉得只是时间问题。所以大家拭目以待吧~

    相关文章

      网友评论

      • 2860698d2edb:不错 站在技术的前沿阵地比较好!
        MeloDev:第二篇语法的来了~可以看看

      本文标题:Android Kotlin 初体验

      本文链接:https://www.haomeiwen.com/subject/czcyfxtx.html