会一直坚持写关于Kotlin的入门系列文章,赶紧关注一起学习吧!
目录
前言
Kotlin是什么?
Kotlin
是一门用于现代多平台应用的静态编程语言
,其中被广泛用于Android 平台的开发,被称之为
Android
世界的
Swift
。它由大名鼎鼎的JetBrains 公司设计开发并开源,著名的
IDE
工具
IntelliJ IDEA
就是他们的产品,所以无疑他们是对编程语言设计领域最为熟悉的专家。
Kotlin
从
2016
年发布
1.0
的
release
版本开始至今,使用的开发者数量快速增长。
此外
Kotlin
已经拥有强大的生态和社区开发者的支持:
•
Kotlin
是著名的
IDE
厂商
JetBrains
公司开发的编程语言
;
•
在
Google I/O 2017
中,
Google
宣布在
Android
上为
Kotlin
提
供最佳支持
;
•
Kotlin
在
Spring5.0
后端开发框架中的支持
;
•
Kotlin DSL 1.0
将在
Gradle5.0
得以应用,
Kotlin
成为继
Groovy
语言开发
Gradle
另一门编程语言
;
•
Kotlin
成为
2018
年
Github
中增长速度最快的语言
;
•
2018
年
10
月,
Google
和
JetBrains
在
KotlinConf18
上公开宣
布了
Kotlin
基金会
;
•
2019
年
5
月,谷歌宣布
Kotlin
作为
Android
的首选语言。
;
•
2019
年
7
月,
Kotlin
在
O’Reilly
开源软件大会(
OSCON
)
2019
上
赢得了享有声望的年度突破项目奖
;
一、为什么优先使用Kotlin进行Android开发?
在
2019
年
Google I/O
大会上,
google
宣布今后将优先采用
Kotlin
进行Android 开发。
Kotlin
是一种新型的静态类型编程语言,不仅可以减少常见代码错误,还可以轻松集成到现有应用中。
下面介绍了开发者喜欢用
Kotlin
编写代码的原因:
•
富有表现力且简洁
:可以使用更少的代码实现更多的功能。少编写样板代码。在使用 Kotlin
的专业开发者中,有
67%
的人反映其工作效率有所提高。
•
更安全的代码
:
Kotlin
有许多语言功能,可帮助避免
null
指针异常等常见编程错误。包含 Kotlin
代码的
Android
应用发生崩溃的可能性降低了 20%
。
•
可互操作
:可以在
Kotlin
代码中调用
Java
代码,或者在
Java
代码中调用 Kotlin
代码。
Kotlin
可完全与
Java
编程语言互操作,因此可以根据需要在项目中添加任意数量的 Kotlin
代码。
•
结构化并发
:
Kotlin
协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理,例如网络调用、本地数据访问等任务的管理。
二、Kotlin优先意味着什么?
在构建新的
Android
开发工具和内容(例如
Jetpack
库、示例、文档和培训内容)时,google
会在设计层面考虑到
Kotlin
用
三、Kotlin能做什么?
如果对
Kotlin
的能力仅仅停留在
JVM
平 台,那是片面的。如今的
Kotlin已经从当初的更好 Java
目标完成了它华丽的大变身,他们的目标已经瞄准了星辰大海。目前 Kotlin
可以适用于
移动端跨平台、原生
JVM
、服务端开
发、
Web
开发、
Android
开发、数据科学
等多个领域。此外近年来
Kotlin团队已经将重心转移到了语言层面的跨平台,多平台的支持。
Kotlin
得益于
Kotlin/JVM
、
Kotlin/JS
、
Kotlin/Native
三个语言编译器的后
端实现
,它不仅仅可以编译成
Java
字节码(
Kotlin/JVM
),也可以编译成JavaScript(Kotlin/JS),还能编译成直接运行在不需要任何
VM
平台的机器代码(Kotlin/Native
),可以轻松实现语言层面的跨平台,并实现在多个平台之间共享代码。目前已经部分支持了 Linux
、
Windows
、
macOS
、
WebAssembly
、
Android
、
iOS
以及
watchOS
和
tvOS
平台
四、我们也使用Kotlin
已有超过
60%
的专业
Android
开发者选择使用
Kotlin
,排名前
1000
位的Android 应用中有
80%
包含
Kotlin
代码。我们的工具和资源可为
Kotlin提供一流的支持。实际上,Android
开发采用
Kotlin
优先
方法。目前有超过 60
款
Google
应用都是使用
Kotlin
构建的。这包括
Google地图、Google Home
、
Play
、
Google
云端硬盘和
Google
信息等应用。其中一个成功案例来自
Google Home
团队
,他们将新功能开发工作迁移到Kotlin 后,代码库大小减少了
33%
,
NPE
崩溃次数减少了
30%
五、Kotlin常见问题
Android
为何将
Kotlin
语言列为一级支持语言?
Kotlin
是一种与
Android
兼容的语言,它不仅语法简洁、更具表达性,还具备类型安全和空值安全的特性。它与 Java
语言可以无缝互通,热爱
Java语言的开发者可以在继续使用 Java
语言的同时,逐步加入
Kotlin
代码并充分利用 Kotlin
库,轻松完成转换。此外,许多
Android
开发者已经发现Kotlin 不仅可以提高开发速度,还能为编程带来更多乐趣,因此,我们希望为这些 Kotlin
用户提供更好的支持。详细了解
Android
的
Kotlin
优先方法
。
如何在
Android Studio
中使用
Kotlin
?
Android Studio
完全支持
Kotlin
。
Android Studio
的所有新版本都支持使用Kotlin 文件创建新项目、将
Java
语言代码转换成
Kotlin
代码、调试
Kotlin代码等操作。
如何在
Android Studio
中调试
Kotlin
代码?
Kotlin
代码的调试方法与
Java
代码相同。不需要执行任何其他操作。
Kotlin
前景如何?
JetBrains
开发的
Kotlin
语言有着深思熟虑的设计理念,这是我们采纳该语言的原因之一。Google
正在与
JetBrains
开展合作,确保开发者在整个开发过程中(从语言到框架再到工具)都能获得出色的体验。
如何在
Java
和
Kotlin
语言之间做出选择?
无需二选一!可以根据需要同时使用两种语言。极力推荐使用
kotlin.
我可以在
Kotlin
中调用
Android
或其他
Java
语言库的
API
吗?
可以。
Kotlin
与
Java
语言具有互操作性。此设计让
Kotlin
代码可以透明地调用 Java
语言方法;对于
Kotlin
独有的功能,可采用注释轻松向
Java代码公开。 对于未使用任何 Kotlin
特有语义的
Kotlin
文件,
Java
代码可
以直接引用,无需添加任何注释。两相结合,就可以同时使用
Java
代码和Kotlin 代码。
我可以在同一个项目中同时使用
Java
文件和
Kotlin
文件吗?
可以。可以根据自己的喜好或多或少采用
Kotlin
语言进行开发。
java
和kotlin 可以同时存在,可以混编开发。
如何将
Kotlin
代码添加到我的现有项目中?
在
Project
窗口中选择相应模块,然后依次选择
File > New
,选择任意Android 模板,然后将
Kotlin
选作
Source language
。
如何将
Java
语言代码转换成
Kotlin
代码?
打开
Java
文件,然后依次选择
Code > Convert Java File to Kotlin File
。也可以新建一个 Kotlin
文件
(
File > New > Kotlin File/Class
)
,然后将Java 代码粘贴到该文件中。界面上出现提示时,点击
Yes
即可将
Java
代码转换成 Kotlin
代码。
使用
Kotlin
会影响性能吗?
使用
Kotlin
不会对性能产生直接影响,但就像使用
Java
语言一样,应该仔细考虑如何使用这种语言。例如,在新的集合实例间重复复制会影响 GC
性能,调用允许非 null
类型的方法会导致调用
null
值检查方法(当然,可以在编译器中使用 -Xno-param-assertions
停用运行时
null
值检查)。
六、Kotlin必知必会
• Kotlin 的基本语法和代码规范 ;
• Kotlin 的面向对象;
• Kotlin 的函数式编程;
• 扩展函数 ;
• 空指针类型安全 ;
• 类型系统;
• 泛型和型变 ;
• 注解和反射 ;
• Kotlin 在 Android 中的实际应用开发。
总结
• 如果有 Java 编程基础,记住千万不要用 Java 编程思维来写 Kotlin 代码,
换句话说不要硬生生把 Java 代码转化成 Kotlin 代码来写,更需要换个思维想
如果用 Kotlin 某个语法糖实现的话更优呢,否则将无法真正体会 Kotlin 这门语
言精髓;
• 记住要善于使用 Kotlin 中的反编译代码插件,就是将 Kotlin 代码反编译成
Java 代码。这是一条非常重要和实用的建议,通过它将会真正看透 Kotlin 语
法糖背后原理,从而更高效地使用它;
• 学会经常去看 Kotlin 源码实现,其实 Kotlin 源码很短的,当知道如何使用某
个语法,更需要知道它背后原理以及善于总结它适用的场景;
• 最后就是多多实践,最好是自己弄个实际的项目,从 0 到 1 全部使用 Kotlin 开
发,每天一点一点给它舔砖加瓦,通过它来学习每一个 Kotlin 语法技能点。