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 支持的选项。
一路点击确定之后,项目就新建完成了,这里想说下,似乎 Android Studio 3.0 需要 gradle 版本在 3.5.0+
项目创建成功之后:
除了之前的 .java 文件变成了 .kt 文件,其他的都没什么变化。这就是一个 kotlin 编写的 Empty Activity。
如果我已有一个一些 java 代码,我想把它转换成 kotlin 的怎么办? 刚才我们说了 It is 100% compatible with the Java,所以显然有现成的方案:
duang~
怎么样,强大不强大~
点击一个按钮,看看怎么写:
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 的资料~
- 官方网站
https://www.kotlincn.net/ (中文版)
https://kotlinlang.org/ (英文版)
(最开始不知道原来还有中文官网,吭哧吭哧翻译英文的。。。想打人)
- kotlin doc
https://www.gitbook.com/book/huanglizhuo/kotlin-in-chinese/details - kotlin github 地址
https://github.com/JetBrains/kotlin - kotlin anko
https://github.com/Kotlin/anko
anko 是 kotlin 写的 Android 快速开发框架,作为 Android 开发者这个基本上是必看的,强烈推荐。 - 在线写 kotlin
https://try.kotlinlang.org/#/Examples/Hello,%20world!/Simplest%20version/Simplest%20version.kt - github 上的资料库
https://www.kotlincn.net/docs/resources.html
资料库有些官方推荐的 Android app 值得一看。
写在后面:
最近我也在看 kotlin doc 上面的语法,我个人觉得确实具有现代语言的优秀特性,将来 kotlin 是否能取代 java,个人觉得只是时间问题。所以大家拭目以待吧~