Kotlin 技术月报 | 2023 年 6 月

为了帮助社区的小伙伴们更好地了解 Kotlin 相关的最新动态,我们决定尝试使用月报的形式,整理展示最近一个月的 Kotlin 技术动态。 月报的主要内容包括:整理展示最近一个月的最新技术动态,精选博客,精选视频,社区活动等 最新动态 精选博客 Kotlin 中的函数式编程:探索 Monad 及其实际用例 Kotlin 是一门从一开始就支持函数式编程的语言,而 Monad 是函数式编程中的一个重要概念,本文主要介绍了 Monad 是什么,在 Kotlin 函数式编程中如何使用它们,以及一些 Monad 的实际应用案例。 Monad 的概念看起来有些难以理解, 关于 Monad 到底是什么也可以参考灰蓝天际大佬翻译的: Kotlin 版图解 Functor、Applicative 与 Monad 使用 ParallelGC 加快 Kotlin 编译速度,并减少内存占用 JDK 17: Using ParallelGC for the Kotlin process in Android Builds 我们知道 Kotlin 编译过程中守护进程会占据大量的内存,这其中不可避免的会发生 GC,因此不同的垃圾回收策略也会影响 Kotlin 编译速度 本文分别使用 G1 垃圾回收器与并行垃圾回收器编译 nowinandroid 项目,对比数据如下: Kotlin 编译任务耗时减少了22% Kotlin 进程的垃圾回收器耗时减少了60% Kotlin进程内存使用量减少了51% 当然不同项目的测试结果可能不同,数据仅供参考。不过 Android 文档中的优化构建速度指南也推荐我们使用并发垃圾回收器,因此感兴趣的同学也可以尝试下,看看与本文的测试数据是否一致 精选视频 Compose 跨平台快速上手 Build Your First Compose Multiplatform App (KMM):Philipp Lackner 是一位在 YouTube 上非常活跃的讲师,主要分享 Kotlin 与 Android 相关的教程。在此视频中,他详细介绍了如何逐步创建一个 Compose 跨平台项目,实现在 Android 和 iOS 平台上共享 UI。...

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