Kotlin 技术月报 | 2024 年 6 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 KotlinConf 分享回放已全部发布 All KotlinConf Recordings Are Now Available. Enjoy! 现在,您可以在 KotlinConf 官方网站上找到 KotlinConf’24 的所有回放:https://kotlinconf.com/talks/ Kotlin 2.0.20-Beta1 版本已发布 Kotlin 2.0.20-Beta1 版本已发布,更新内容也主要是一些 bug 修复:https://github.com/JetBrains/kotlin/releases 你可能会好奇,为什么 2.0.10 还没有发布就发布了 Kotlin 2.0.20-Beta1? 还会有 2.0.10 吗? 自 Kotlin 2.0.0 起,Jetbrains 发布以下类型的版本: 语言版本(2.x.0),带来语言的重大变化并包括工具更新。每6个月发布一次。 工具版本(2.x.20),在语言版本之间发布,包括工具更新、性能改进和错误修复。在相应的语言版本发布后3个月发布。 错误修复版本(2.x.yz),包括针对工具版本的错误修复。这些版本没有确切的发布时间表。 对于每个语言和工具版本,Jetbrains 还会发布几个预览(EAP)版本,供您在正式发布之前尝试新功能。因此不必担心,Kotlin 2.0.10 版本将随后发布。 精选博客 采用 Kotlin Multiplatform 做跨平台 KMP 作为跨平台框架,到底有没有技术生命力,是否要选择它来作为自己未来的发展方向?本文借鉴左耳朵耗子在“如何选择技术”中提出的观点来考虑: Kotlin Symbol Processing使用与原理剖析 Kotlin Symbol Processing (KSP) 是一个可用于开发轻量级编译器插件的API,与Kotlin Annotation Processing Tool(KAPT)相似,但是却可以更高效地处理注解,并提供更好的性能,使用 KSP 的注释处理器的运行速度最多可达两倍,而且可以支持多平台。 本文详细介绍了 KSP 的使用与从 Kapt 迁移过来的步骤,具体包括如下内容:...

June 30, 2024 · beijing-kug

Kotlin 技术月报 | 2024 年 5 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 2.0 已发布 What’s new in Kotlin 2.0.0 Kotlin 2.0 已正式发布,具体包括以下内容: K2 编译器正式发布稳定版,带来更快的编译速度与更好的类型推断 Compose 编译器插件代码已合并到 Kotlin 仓库中 默认使用 invokedynamic 来生成 lambda 表达式,相比匿名内部类方式减少了包体积 kotlinx-metadata-jvm 库现已稳定,该库可用于读取与修改 metadata 支持使用 Instruments 工具监控 Kotlin/Native GC 性能 Kotlin/Wasm 支持按名字导出符号 Kotlin/Wasm 支持通过 @JsExport 导出无符号基础类型 enumEntries 方法已稳定,推荐使用其代替 enumValues 方法 Compose Multiplatform 1.6.10 版本已发布 Compose Multiplatform 1.6.10 – iOS Beta, Web Alpha, Lifecycle, Navigation, and More Compose Multiplatform 版本已发布,具体包括以下内容: Compose Multiplatform for iOS 进入 beta 状态 Compose Multiplatform for Web 进入 alpha 状态 多平台资源 API 现已稳定,并且带来了一些期待已久的改进 Jetpack Compose Navigation 库支持 Compose Multiplatform Lifecycle 与 ViewModel 库支持 Compose Multiplatform 新的 Compose 编译器插件,代码合并到 Kotlin 仓库中 支持 Kotlin 2....

May 30, 2024 · beijing-kug

Kotlin 技术月报 | 2024 年 4 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 IntelliJ IDEA 已支持开启 K2 模式 K2 Kotlin Mode (Alpha) in IntelliJ IDEA 从2024.1版本开始,IntelliJ IDEA 提供了一个可选的 K2 模式,开启 K2 模式后将获得以下收益: Kotlin 新特性支持:新模式将支持仅在 K2 Kotlin 编译器中提供的未来语言特性。 代码分析的稳定性:得益于架构的重构,IDE 功能的质量和可靠性应该会得到提升,代码分析也将更加稳定。 更优的 IDE 性能:Kotlin 代码高亮和 Kotlin 代码补全的速度已显著提高。 全行代码补全:新版 JetBrains IDE 自带的 AI 神器 AI 编程仍然是一个众说纷纭的话题,但越来越多的开发者开始将 AI 融入他们的日常工作流中。 JetBrains IDE v2024.1 版本中推出了一项新功能:全行代码补全。这个功能利用AI技术,在本地运行,不需要互联网连接,也不会发送任何数据到互联网上。它支持多种编程语言,包括Java、Kotlin、Python等,并且已经集成到多个JetBrains IDE中,如IntelliJ IDEA、PyCharm等。 全行代码补全功能已包含在 JetBrains IDE 的有效订阅中,无需额外费用,只需确保您使用的是 v2024.1 或更高版本即可。 Kotlin 2.0.0-RC1 版本已发布 What’s new in Kotlin 2.0.0-RC1 Kotlin 2....

April 30, 2024 · beijing-kug

Kotlin 技术月报 | 2024 年 3 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Compose Multiplatform 1.6 版本发布 Compose Multiplatform 1.6 版本已发布,具体包括如下内容: 更新了通用资源管理 API: 可以使用生成的 Res 对象在 Compose Multiplatform 代码中访问资源 引入了通用 UI 测试 API: UI 测试可以帮助您确保应用程序的行为符合预期,Compose Multiplatform 1.6 为此引入了通用 UI 测试 API 添加了 iOS 辅助功能支持: Compose Multiplatform 现在为 iOS 提供支持,使残障人士可以与 Compose UI 以与原生 UI 相同的舒适度进行交互 带来了许多其他功能和改进: 包括对 Fleet 的 @Preview 注解的支持,iOS 与桌面端的一些优化等 Ktor 2024 路线图发布 Ktor 是一个轻松构建联网应用(web 应用、 HTTP 服务、 移动应用以及浏览器应用)的框架。Ktor 2024 路线图已发布, Ktor 团队将继续保持框架轻量级、灵活和透明,提高功能质量和性能,扩展Ktor插件生态系统,具体包括如下内容: 新功能: 引入OpenTelemetry插件,用于生成和收集遥测数据。 集成gRPC,支持创建和消费基于gRPC的服务。 在Ktor 3....

March 30, 2024 · beijing-kug

Kotlin 技术月报 | 2024 年 2 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频以及社区活动等方面的信息。 最新动态 Kotlin 2.0.0-Beta4 版本发布 What’s new in Kotlin 2.0.0-Beta4 Kotlin 2.0.0-Beta4 版本已发布,具体包括以下内容: K2 编译器的稳定性持续提升,自 1.9.20 起,K2 编译器的所有 target 都达到了 Beta 状态。 Gradle 构建工具方面的改进 Kotlin/JS 支持类型安全的纯 JavaScript 对象 Kotlin/JS 支持使用 npm 作为包管理器 Kotlln/JS 支持导出 List, Map, Set 等集合类型 Amper 2024 年 2 月更新 Amper 是 Jetbrains 开发的一个项目配置工具。它的目标是改善项目配置的用户体验和可工具性,即 IDE 内部的支持,同时提供流畅的开箱即用体验。 Amper 0.2.0 版本已发布,并带来了一些新的特性: 支持 Gradle version catalogs 支持依赖补全 支持在 IDEA 中创建 Amper 项目 支持 Fleet, IntelliJ IDEA, 与 Android Studio 等 IDE Jetpack Lifecycle 支持 Koltin 跨平台 Jetpack Lifecycle 支持 Koltin 跨平台...

February 28, 2024 · beijing-kug

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