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