为了协助社区的小伙伴们更好地了解 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)已经到达安稳状况并准备好投入生产运用。

Kotlin Multiplatform 技能的中心由许多部分组成,例如编译器支撑、言语功能、库 API、IDE、构建东西等。 这些部分覆盖了最抢手的代码同享用例,并且在 Kotlin 1.9.20 中得到安稳。 “安稳”意味着 Jetbrains 在改善这些部分时将遵从严格的兼容性规则,从而使开发者能够决心满满地将其用于生产环境代码。

后续 Jetbrains 将继续优化 Kotlin 多渠道(特别是 iOS 渠道)的开发体会,Compose Multiplatform for iOS 也估计将在 2024 年发布 beta 版别,随着 KMP 生态的继续开展,现在正是参加的好时机。

Kotlin 技能月报 | 2023 年 11 月

Compose Multiplatform 1.5.10 版别发布:最佳的入门时机

Compose Multiplatform 1.5.10 – The Perfect Time To Get Started

Compose Multiplatform 是由 JetBrains 构建的声明式 UI 结构,答应开发者跨渠道同享运用程序 UI。 它让您能够在 Android、iOS、桌面和 Web 端重用最高 100% 的代码库。

现在是开始运用 Compose Multiplatform 的最佳时机, Compose Multiplatform 1.5.10 版别发布,详细包含以下更新:

  • 新的入门教程与引导将使 Compose Multiplatform 入门更加简略
  • 一切 Compose Material 3 组件现在都能够在通用代码中运用
  • iOS 端增强的 TextFields
  • 更快的编译器速度
  • 对 K2 编译器的基本支撑
  • iOS 端烘托功能的优化
  • 新的 Kotlin Multiplatform 开发门户供给了教程、常见问题解答、全新示例和其他有用文档

KMP 2024 路线图发布

Kotlin Multiplatform Development Roadmap for 2024

KMP 2024 路线图发布,详细包含以下内容:

  1. Compose for iOS 估计将发布 beta 版别
  2. 推出一站式 KMP 开发 IDE: Fleet ,提高开发者体会
  3. 重点优化 iOS 端开发体会,优化 Kotlin 与 Swift 互调用体会
  4. 推动 KMP 库生态开展,经过一系列优化与东西保证 KMP 库的向后兼容性
  5. 下降上手本钱,答应不经过 mac 构建与发布 KMP 库,一同供给创立与发布 KMP 库的模板

Kotlin 在 Github 2023 言语排行榜中进入 Top 12

Octoverse: The state of open source and rise of AI in 2023

Github 发布了 2023 年的 Octoverse 陈述,陈述显现 kotlin 的比例增长势头强劲,已经稳步攀升至编程言语排行榜的 Top 12 之列。

Kotlin 技能月报 | 2023 年 11 月

精选博客

Kotlin 跨渠道 |我觉得能够试试

跨端一直在业内都是一个讨论度非常高的论题,无论是flutter,rn或者rust,各自都有自己的优劣势。本文剖析比较了各跨端计划的优缺点,一同介绍了 KMP 计划比较合适的切入点: 核算逻辑比较复杂的 sdk。

Kotlin 技能月报 | 2023 年 11 月

用Kotlin Duration来优化时刻单位换算

时刻单位换算在 JVM 中咱们能够运用直接数学运算完成, Java 供给的 TimeUnit 以及 kotlin 的 Duration API。

kotlin.time.Duration 是 Kotlin 标准库中的一个类,用于表明时刻度量,它能够用于核算时刻差等场景。该类供给了一些便利的方法来创立、比较和操作时刻间隔,本文首要介绍了 Kotlin Duratioin API 的各种用法与示例

    //不运用Duration
    @Test
    fun time_millis() {
        val currentTimeMillis = System.currentTimeMillis()
        //1天24小时 每小时60分钟 1分钟60秒 每秒1000毫秒
        val millisOfOneDay: Long = 24 * 3600 * 1000
        println("format:${currentTimeMillis + 3 * millisOfOneDay}")
    }
    //Java TimeUnit
    @Test
    fun time_millis_java() {
        val currentTimeMillis = System.currentTimeMillis()
        val threeDaysOfMillis = TimeUnit.DAYS.toMillis(3)
        println("format:${currentTimeMillis + threeDaysOfMillis}")
    }
    //运用Duration
    @Test
    fun time_millis_duration() {
        val currentTimeMillis = System.currentTimeMillis()
        val feature = currentTimeMillis.milliseconds + 3.days
        println("format:${feature.inWholeMilliseconds}")
    }

Kotlin inline 的完成原理

Kotlin under the hood: How inline functions work

关于 Kotlin 内联函数的一个常见误解是,Kotlin 内联函数经过减少栈桢的方法完成了功能优化,但当你增加如下代码时

private inline fun warningInlineFun(a: Int, b: Int): Int {
        return a + b
}

编译器将会警告:Expected performance impact from inlining is insignificant. Inlining works best for functions with parameters of functional types

事实上,内联最适合具有函数类型参数的函数,将函数类型参数反编译后对应 Java 的匿名内部类,在 Java 中创立匿名类是一项开销很大的操作,而这恰恰是内联函数的优点。内联函数答应您消除创立匿名类,以便将函数类型参数传递给函数参数。

精选视频

这可能是 JetBrains Fleet 的杀手锏

Fleet 是由 JetBrains 打造的下一代 IDE,因为其轻量级特性,从一发布就面临着与 VSCode 的比较,那么 Fleet 相比 VSCode 到底有什么优势呢?

关于 Kotlin 开发者来说,Fleet 供给了对 Kotlin Multiplatform 一站式开发的支撑,在多渠道项目中运用原生代码时,无需切换到不同的编辑器或牺牲有用性,一同也支撑了 Swift 与 Kotlin 之间的跨言语导航,极大的优化了 KMP 程序的开发体会。

Kotlin 技能月报 | 2023 年 11 月

北京 DevFest 共享回放

一年一度的北京 Google DevFest (谷歌开发者节) 活动已于 11 月 19 日举办,下面是活动中 Kotlin 相关一些主题共享:

社区活动

合肥 Kotlin 用户组正式建立

合肥 Kotlin 用户组正式建立,在这里能够和其它成员一同学习、讨论技能问题,还会不定期举办研讨会,进行与 Kotlin 相关的主题共享与讨论。

欢迎一切对 Kotlin 感兴趣的开发者参加,想要参加的小伙伴,欢迎增加组织者微信 [WestonHan] 备注 KUG,邀请入群。

详情可见合肥 Kotlin 用户组网站:hefei-kug.github.io/

Kotlin 中文开发者大会如期重返

Kotlin 中文开发者大会如期重返,不可错失的 Kotlin 年终总结!

在 2023 年的尾声,Kotlin 开发者期待已久的大事即将发生!一年一度 Kotlin 中文开发者大会,将在 12 月 16 至 17 日和大家线上碰头。

今年大会将于 12 月 16 日(六)及 12 月 17 日(日)两天进行线上直播,本次邀请到 16 位来自各公司的 Kotlin 技能专家,带来 Kotlin Multiplatform 的第一手案例实践、Kotlin 编译器中心讲解、运用 KSP 辅佐开发、Kotlin 在后端的运用等论题。首次设立 Live Coding 环节带大家一同运用 Compose 写个小游戏。另外还有来自 Kotlin 教育项目及 KUG 技能社区的小伙伴,跟大家共享 Kotlin 团队在教育方面的投入、KUG 社区同学参与 Kotlin 多渠道比赛的心得以及 KUG 社区运营等论题。如此丰富的主题,机会难得,不容错失!