Kotlin 技术月报 | 2024 年 1 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 学习使用 IDE 重构 Kotlin 代码 Learn IDE Code Refactoring in Kotlin for Enhanced Code Quality JetBrains Academy 插件中推出了一门新课程:《学习使用 IDE 重构 Kotlin 代码》。该课程将帮助您学习如何使用 IDE 重构 Kotlin 代码,以提高代码质量。 您将在课程中了解如下主题: 命名约定和代码风格样式规则 完全重构 VS 逐步重构 用于移动、提取和内联代码的自动化重构技巧 使用设计模式重构代码 IntelliJ IDEA 的 K2 Kotlin 模式现已推出 Alpha 版! IntelliJ IDEA’s K2 Kotlin Mode Now in Alpha! 随着 K2 编译器的逐渐稳定,IDEA 也推出了 K2 模式。开启 K2 模式后,IntelliJ IDEA 将使用嵌入的 K2 Kotlin 编译器来分析 Kotlin 代码。在开启 K2 模式后, Kotlin 代码的代码高亮和代码补全的性能得到了显著的提高。...

January 30, 2024 · beijing-kug

Kotlin 技术月报 | 2023 年 12 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin/Wasm 已进入 Alpha 阶段 Kotlin for WebAssembly Goes Alpha Kotlin/Wasm 是新推出的 Kotlin Multiplatform 目标平台,现已达到 Alpha 状态!具体包括以下更新: JetBrains 已将 Kotlin/Wasm 提升到 Alpha 版本,让您可以亲自上手尝试。 您的反馈将影响使用 Kotlin 构建 Web 应用程序的未来! 作为 Alpha 版本,Kotlin/Wasm 已经可以在预生产场景中使用,但许多方面仍待完善。 我们需要社区的帮助来确定 Kotlin/Wasm 的相关决策并确定其优先级。 Compose for Web(目前处于实验阶段)由 Kotlin/Wasm 提供支持。 两种技术互相配合,让您完全使用 Kotlin 为 Web 应用程序创建声明式用户界面。 WebAssembly 从一开始就被设计为语言的编译目标,因此虽然 Kotlin/Wasm 仍处于 Alpha 阶段,但其在几乎所有宏基准测试中都已经优于 Kotlin/JS: Jetbrains 2023 开发者生态报告发布 2023 开发者生态系统现状 Jetbrains 2023 开发者生态报告发布,从报告中可以看到很多值得关注和有趣的地方,比如在 2023 年,Scala、Go 和 Kotlin 开发者位列薪酬最高的三大类别。...

December 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 11 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 1.9.20 版本发布 What’s new in Kotlin 1.9.20 Kotlin 1.9.20 版本已发布,具体包括以下内容: K2 对所有目标平台的支持达到 beta 状态 Kotlin Multiplatform 达到稳定状态 全新的 Kotlin 多平台项目模板,减少配置中的重复代码 Kotlin 多平台插件添加了对 Gradle 配置缓存的完全支持 Kotlin/Native 默认使用新版内存分配器 Kotlin/Native 垃圾回收性能持续提升 添加了全新的 wasm-wasi 目标,并将原有的 wasm 目标重命名为 wasm-js 标准库添加了对 WASI API 的支持 此外,本月 Kotlin 还发布了 1.9.21 小版本,主要是修复了一些 issue, 同时还解决了 kapt 与 java21 的兼容问题 Kotlin Multiplatform 已稳定并准备好投入生产使用 Kotlin Multiplatform Is Stable and Production-Ready 经过多年的迭代,由 JetBrains 打造的开源技术 Kotlin 多平台(Kotlin Multiplatform)已经达到稳定状态并准备好投入生产使用。...

November 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 10 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 1.9.20-RC2 版本发布 What’s new in Kotlin 1.9.20-RC2 Kotlin 1.9.20-RC2 版本已发布,具体包括以下内容: K2 版本 Kapt 编译器插件的实验性支持 全新的 Kotlin 多平台项目模板,减少配置中的重复代码 Kotlin 多平台插件添加了对 Gradle 配置缓存的完全支持 Kotlin/Native 默认使用新版内存分配器 Kotlin/Native 垃圾回收性能持续提升 添加了全新的 wasm-wasi 目标,并将原有的 wasm 目标重命名为 wasm-js 标准库添加了对 WASI API 的支持 Kudos 发布 https://github.com/kanyun-inc/Kudos Kudos 是 Kotlin utilities for deserializing objects 的缩写。它可以解决使用 Gson、Jackson 等框架反序列化 JSON 到 Kotlin 类时所存在的空安全问题和构造器默认值失效的问题。 在使用常见的 JSON 序列化框架解析 JSON 时,Kotlin 开发者通常会面临无参构造器和属性空安全的问题。我们通常的建议是使用 Moshi 或者 kotlinx.serialization。 不过,切换框架往往并不容易。kotlinx.serialization 不支持 Java,适合纯 Kotlin 项目使用;Moshi 虽然也同时支持 Java,但它在解析时与 Gson 这样的框架在细节上仍然有不少差异。...

October 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 9 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 1.9.20-Beta 发布 What’s new in Kotlin 1.9.20-Beta Kotlin 1.9.20-Beta 版本已发布,具体包括以下内容: 全新的 Kotlin 多平台项目模板,减少配置中的重复代码 Kotlin 多平台插件添加了对 Gradle 配置缓存的完全支持 Kotlin/Native 默认使用新版内存分配器 Kotlin/Native 垃圾回收性能持续提升 添加了全新的 wasm-wasi 目标,并将原有的 wasm 目标重命名为 wasm-js 标准库添加了对 WASI API 的支持 Dagger/Hilt 支持 KSP https://github.com/google/dagger/releases Dagger 2.48 版本发布,提供了对 Dagger 和 Hilt KSP 处理器的支持。 为了使用 Dagger 的 KSP 处理器,主要需要完成以下工作: 按照基本设置,将 Dagger 的处理器从 kapt 迁移到 ksp。 将任何 Dagger SPI 插件迁移到新的 Dagger SPI 插件 API。 确保没有 Kapt 处理器生成需要与 Dagger 交互的类。 需要注意的是,Dagger 的 KSP 处理器仍处于 alpha 阶段,官方目前主要关注的是确保正确性而不是优化性能,在使用的过程中有任何问题都可及时向官方反馈...

September 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 8 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 路线图更新 Kotlin 路线图更新了!今年还有哪些亮点值得期待? 带有稳定版 K2 编译器的 Kotlin 2.0 即将面世! Kotlin Multiplatform 将在今年迈入稳定! Kotlin/Wasm 计划将提升至 alpha,并可适用于独立的 Wasm 虚拟机 新的基础库 kotlinx-io 正在开发中 Android 调试体验改进,调试内联类与内联函数将更加容易 Kotlin 跨平台的缩写正式更改为 KMP Update on the Name of Kotlin Multiplatform 为了解决过去两年里困扰许多 Kotlin 开发者的命名不一致和缩写混淆问题,Jetbrains 决定弃用“Kotlin多平台移动”(KMM)产品名称。从现在开始,当提及 Kotlin 用于跨不同平台共享代码的技术时,首选术语是“Kotlin多平台”(KMP),无论所讨论的目标平台组合是什么。 KotlinConf 2024 门票现已开售 KotlinConf 2024 门票现已开售!| 官方博客 第五届 KotlinConf 将于 2024 年 5 月 22 日至 24 日在丹麦哥本哈根贝拉中心(Bella Center)举行,届时,Kotlin 社区成员将再度齐聚一堂! KotlinConf’24 将举办为期一天的工作坊,随后是连续两天的内容和社交活动,包括会议、展览和其他趣味活动。 赶快预订门票,安排旅行,准备参加规模最大的 Kotlin 活动。...

August 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 7 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定尝试使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 1.9.0 版本发布 Kotlin 1.9.0 现已发布 | 官方博客:Kotlin 1.9.0 版本已发布,其中最大的变化应该是 K2 编译器终于支持了 KAPT 编译器插件,主要包括以下内容: 持续完善 Kotlin K2 编译器,包括对 KAPT 的支持,Gradle 构建报告更好的支持等 一些语言特性:在枚举类中推荐使用entries属性代替values()方法进行遍历,data object 现已稳定,Value Class 支持次级构造函数 1.7.20 版本引入的..<操作符成为稳定 API 提供了一个用于根据名称获取正则表达式capture group的新 API 提供了一个新的扩展函数createParentDirectories,可用于创建带有必要父目录的新文件,如果目录已存在,则不操作,否则创建目录 Kotlin 跨平台 Gradle 插件支持配置缓存 Google 的 Android 团队将提供自己的 Gradle 插件来支持 Kotlin Multiplatform 中的 Android Target Kotlin/Native 在访问 object 单例的 const val 字段时将不再初始化 object Kotlin/Native在链接过程中遇到无符号问题时,默认处理方式已更改为警告而非报错,这样更接近于Kotlin/JVM的处理方式,即在运行时报错 Kotlin/Wasm 在包体积方面做了巨大的优化,以一个 HelloWorld 项目为例,1.9.0 版本相较于 1.8.20 版本,其体积缩小了10倍。 也可以查看视频版本的介绍:Kotlin 1....

July 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 6 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定尝试使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 1.9.0-RC 版本发布 What’s new in Kotlin 1.9.0-RC:Kotlin 1.9.0-RC 版本已发布,主要包括以下内容 持续完善 Kotlin K2 编译器,添加了对 Kotlin/Native 后端的支持 在枚举类中推荐使用entries属性代替values()方法进行遍历 1.7.20 版本引入的..<操作符成为稳定 API 提供了一个用于根据名称获取正则表达式capture group的新 API 提供了一个新的扩展函数createParentDirectories,可用于创建带有必要父目录的新文件,如果目录已存在,则不操作,否则创建目录 Kotlin 跨平台 Gradle 插件支持配置缓存 Google 的 Android 团队将提供自己的 Gradle 插件来支持 Kotlin Multiplatform 中的 Android Target Kotlin/Native 在访问 object 单例的 const val 字段时将不再初始化 object 精选博客 Kotlin 中的函数式编程:探索 Monad 及其实际用例 Kotlin 是一门从一开始就支持函数式编程的语言,而 Monad 是函数式编程中的一个重要概念,本文主要介绍了 Monad 是什么,在 Kotlin 函数式编程中如何使用它们,以及一些 Monad 的实际应用案例。 Monad 的概念看起来有些难以理解, 关于 Monad 到底是什么也可以参考灰蓝天际大佬翻译的: Kotlin 版图解 Functor、Applicative 与 Monad...

June 30, 2023 · beijing-kug

Kotlin 技术月报 | 2023 年 5 月

最近举办的 KotlinConf 与 Google I/O 上都有不少 Kotlin 技术的分享,同时最近一个月各地的 Kotlin 组织也举办了不少活动 为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定尝试使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频,社区活动等 最新动态 KotlinConf 2023 回放来了 KotlinConf 2023 的所有回放已出,所有回放列表可见:https://kotlinconf.com/talks/ 本次大会除了开场与闭幕讨论,共有 69 场分享,可以说是一场盛宴了,我整理统计了一下各个分享的主题 主题 分享数 Kotlin 跨平台 21 Compose 相关分享 10 Kotlin 在服务端的应用 9 Kotlin 协程相关分享 8 Kotlin 编译器与编译器插件 8 Kotlin 与测试 4 Kotlin 语言特性相关分享 4 Kotlin 与函数式编程 3 Kotlin 用于数据科学 2 Kotlin 与游戏 2 Kotlin 与 Gradle 1 Kotlin 与 AI 1 从各个主题的分享数量也可以看出 Kotlin 在各个方向的火热程度 Kotlin 跨平台相关分享是最多的,可以看出这也是 Kotlin 团队下一步要重点发展的方向 越来越多的人开始使用 Compose ,据统计,在 top 1000 的 Android 应用中,有 21% 的应用使用了 Jetpack Compose 虽然据统计大约 66% 的 Kotlin 开发者是 Android 开发者,但服务端开发者使用 Kotlin 的比例也在逐渐上升,这应该也是 Kotlin 团队想要发力的方向 这次大会 Kotlin 编译器与编译器插件相关的分享也比较多,应该是因为 K2 编译器的逐渐成熟,即将发布 beta 版本 国外很多团队重视代码测试,而不仅仅是需求开发,因此 Kotlin 在测试方面的分享也较多 Google I/O : Android 版 Kotlin 的新动态 What’s new in Kotlin for Android:在本次 Google I/O 大会上,介绍了今年将为 Android 开发者发布的 Kotlin 更新,主要包括...

May 30, 2023 · beijing-kug