KOTLIN必知必会
- 为什么要优先使用 Kotlin 进行 Android 开发?
- google宣布 Kotlin-First意味着什么?
- 有哪些人都在使用kotlin?
- Kotlin十问
- Kotlin必知必会的7大模块——本章课程体系介绍
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 用户
Java 语言 | Kotlin | |
---|---|---|
平台 SDK 支持 | 是 | 是 |
Android Studio 支持 | 是 | 是 |
Lint | 是 | 是 |
==引导式文档支持 | 是 | 是 |
API 文档支持 | 是 | 是 |
AndroidX 支持 | 是 | 是 |
AndroidX Kotlin 特有 API(KTX、协程等) | 无 | 是 |
在线培训 | 尽力而为 | 是 |
示例 | 尽力而为 | 是 |
多平台项目 | 否 | 是 |
Jetpack Compose | 否 | 是 |
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中的实际应用开发。
总结几条学习 Kotlin 的建议?
- 如果有 Java 编程基础,记住千万不要用 Java 编程思维来写 Kotlin 代码,换句话说不要硬生生把 Java 代码转化成 Kotlin 代码来写,更需要换个思维想如果用 Kotlin 某个语法糖实现的话更优呢,否则将无法真正体会Kotlin这门语言精髓;
- 记住要善于使用 Kotlin 中的反编译代码插件,就是将 Kotlin 代码反编译成 Java 代码。这是一条非常重要和实用的建议,通过它将会真正看透 Kotlin 语法糖背后原理,从而更高效地使用它;
- 学会经常去看 Kotlin 源码实现,其实 Kotlin 源码很短的,当知道如何使用某个语法,更需要知道它背后原理以及善于总结它适用的场景;
- 最后就是多多实践,最好是自己弄个实际的项目,从0到1全部使用 Kotlin 开发,每天一点一点给它舔砖加瓦,通过它来学习每一个 Kotlin 语法技能点。
关于 Kotlin 的一些干货资料
- Kotlin官网
- Kotlin中文站
- Kotlin中文社区
- Kotlin中文博客
- Kotlin Weekly
- Medium kotlin-academy博客