Skip to content

2024 年 Google 夏日代码与 Kotlin

本文包含 2024 年 Kotlin Google 夏日代码的项目创意列表贡献者指南

NOTE

Kotlin 资源:

如果您有任何问题,请通过 [email protected] 联系我们

Kotlin 参与 Google 夏日代码 (GSoC) 的贡献者指南

入门

  1. 查看 GSoC 常见问题项目公告

  2. 熟悉 Kotlin 语言:

  3. 了解 Kotlin 开源社区:

如何申请

  1. 查看项目创意并选择您想从事的项目。
  2. 如果您不熟悉 Kotlin,请阅读 Kotlin 网站上的入门信息
  3. 参考 GSoC 贡献者指南
  4. 通过 GSoC 网站申请。
    • 我们建议您撰写一个与提议项目相关的可工作的代码示例。您也可以向我们展示您特别引以为傲的任何代码示例。
    • 描述您为什么对 Kotlin 感兴趣以及您的经验。
    • 如果您参与开源项目,请提供您的贡献历史。
    • 如果您有 GitHub、Twitter 账户、博客或技术/科学出版物作品集,也请提供参考。
    • 披露因其他承诺(如考试和假期)而与 GSoC 时间线存在的任何冲突。

感谢您!我们期待阅读您的申请!

项目创意

Kotlin 到 WebAssembly 编译器的增量编译 [难度:高,350 小时]

增量编译是一种有助于提高编译速度的技术,它通过仅重新编译更改的文件而不是整个程序(也称为执行干净构建)来实现。Kotlin 到 Wasm 编译器目前仅支持干净构建,但在本项目中,我们将增强其功能以支持增量编译。

预期成果

在 Kotlin 到 WebAssembly 编译器中实现增量编译功能,有助于加快开发工作流。

所需技能 (优先)

Kotlin

可能的导师

Artem Kobzar, JetBrains

Compose Multiplatform 与 Node.js 原生 Skia 绑定 [难度:高,350 小时]

Compose Multiplatform 是一个用于跨多个平台共享使用 Kotlin 构建的 UI 的声明式框架。 目前渲染桌面应用程序的方法使用 JVM 作为平台, 但如果我们使用 Compose Multiplatform for Web 并尝试在浏览器外部通过 Skia 的原生绑定运行应用程序呢? 这会提高桌面应用程序的性能和内存消耗吗?或者会适得其反? 我们将在本项目中找出答案!

预期成果

将 Skia 绑定与 Compose Multiplatform 集成,并评估其对桌面应用程序的性能影响。

所需技能 (优先)

Kotlin, Node.js, C++, 或 Rust

可能的导师

Artem Kobzar, JetBrains

Compose Multiplatform 组件画廊生成器 [难度:中,350 小时]

Compose Multiplatform 是一个用于跨多个平台共享使用 Kotlin 构建的 UI 的声明式框架。 在 React Web 开发时代初期,Storybook 被创建出来,Storybook 提出的描述组件状态并生成整个 UI 库画廊的方法仍然是 Web 开发中重要的文档方法之一。 我们能否使用 Compose Multiplatform 实现同样的功能,用它来生成 Web UI 元素画廊,以及移动和桌面平台的画廊? 让我们在本项目中尝试一下。

预期成果

创建一个工具,利用 Compose Multiplatform 生成适用于 Web、移动和桌面平台的 UI 组件画廊。

所需技能 (优先)

Kotlin, Jetpack Compose, UI/UX 设计

可能的导师

Artem Kobzar, JetBrains

用于声明式 Gradle 的 Kotlin DSL 改进 [难度:中,175 小时]

去年 11 月,Gradle 团队宣布了新的声明式 Gradle 项目, 在该项目中引入了更高级别的 Kotlin DSL。我们邀请 GSoC 贡献者加入我们,致力于改进新 DSL 的开发者体验, 特别是通过在 Gradle 插件中实现可扩展性,以支持最常见的 Kotlin 和 Java 项目集成:静态分析、Kotest 等测试框架。

预期成果

在 Gradle 的 Kotlin DSL 中实现可扩展性功能,并改进对常见项目集成的支持。

所需技能 (优先)

Kotlin, Gradle, Java, 静态分析

可能的导师

Oleg Nenashev, Gradle

Gradle 指南

Kotlin DSL 文档示例测试框架 [难度:易或中,90 小时或 175 小时]

许多项目,包括 Gradle,都有大量的 Kotlin DSL 示例和代码片段 (例如,请参阅 Gradle 文档)。 针对多个版本测试它们会带来一些挑战,因为这些片段通常为了简洁起见而不完整。 我们希望构建一个测试框架,简化在 GitHub Actions 和 Teamcity 上使用单元测试框架(Kotest 或 JUnit 5)验证这些示例的过程。

预期成果

实现一个用于 Kotlin DSL 示例的基本测试框架,并与 GitHub Actions 集成以进行持续测试。

所需技能 (优先)

Kotlin, 测试框架, CI/CD

可能的导师

Oleg Nenashev, Gradle

Gradle 指南

Gradle 构建服务器 – 支持 Android 项目 [难度:中或高,175 小时或 350 小时]

Kotlin 和 Gradle 是构建 Android 项目的默认选择。 2023 年 11 月,Microsoft 团队宣布了 Gradle 构建服务器项目, 它是 构建服务器协议 (BSP) 的 Gradle 特定的实现。 在该项目中引入对 Android 构建的全面支持将会非常棒。 对于范围较小的项目,可以在 Gradle 构建服务器中实现 Gradle 任务的自动发现和取消。

预期成果

在 Gradle 构建服务器中实现 Android 项目支持,包括自动发现和任务取消。

所需技能 (优先)

Kotlin, Gradle, Android 开发, Visual Studio Code

可能的导师

Oleg Nenashev, Gradle

Gradle 指南

为 Kotlin/Native 基准测试实现内存使用分析 [难度:中,175 小时]

kotlinx-benchmark 库是一个开源工具包, 用于跨各种平台对 Kotlin 代码进行基准测试。 它目前具有 JVM 的 GC 分析功能,详细说明了每个基准测试方法的分配速率。 本项目旨在将类似的分析功能扩展到 Kotlin/Native,朝着跨平台统一基准测试能力迈进。

贡献者将与 Kotlin/Native 团队密切合作,创建一个 API 用于从 Kotlin/Native 内存管理器访问分配数据。 目标是生成与 JVM 格式一致的报告,确保跨平台数据呈现的一致性。 此外,该项目还涉及识别并纠正其他库功能报告格式中的任何差异, 从而标准化基准测试输出以进行全面的跨平台分析。

预期成果

在 kotlinx-benchmark 中为 Kotlin/Native 实现内存使用分析,并标准化基准测试输出。

所需技能 (优先)

Kotlin, Kotlin/Native, 基准测试, 内存分析

可能的导师

Abduqodiri Qurbonzoda, JetBrains
Alexander Shabalin, JetBrains

在 kotlinx-benchmark 中支持 Android 目标 [难度:中,175 小时]

kotlinx-benchmark 库是一个开源工具,旨在跨多个平台(包括 JVM、JS、WasmJs 和 Native)对 Kotlin 代码进行基准测试。尽管其兼容性广泛,但该库目前不支持在 Android 上进行基准测试。本项目旨在弥补这一空白。计划是利用现有 Android 库,例如 androidx.benchmark,在幕后集成此功能。该项目的一个关键方面将是确保目前适用于其他平台的所有功能也能在 Android 上得到支持,从而保持该库的多平台实用性。

预期成果

在 kotlinx-benchmark 中集成对 Android 平台的基准测试支持,确保与其它平台的功能对等。

所需技能 (优先)

Kotlin, Android 开发, 基准测试

可能的导师

Abduqodiri Qurbonzoda, JetBrains
Rahul Ravikumar, Google

在 IntelliJ IDEA 中为 kotlinx-benchmark 基准测试启用点击运行 [难度:中,175 小时]

kotlinx-benchmark 是一个用于对 Kotlin 编写的多平台代码进行基准测试的开源库。 它包含一个 Gradle 插件,应用后可提供运行基准测试的任务。 然而,执行这些任务需要导航到 IDE 的 Gradle 面板或使用终端。 此外,运行特定的基准测试需要额外的步骤,这增加了复杂性。 为了减轻这种不便并简化流程,本项目旨在使用户能够直接从 IntelliJ IDEA 界面运行单个基准测试或整个套件,效仿单元测试提供的便利性。 实现此目标可能需要与 IntelliJ IDEA 团队合作和/或直接向 IntelliJ 项目贡献代码。

预期成果

在 IntelliJ IDEA 中为 kotlinx-benchmark 基准测试集成点击运行功能,提升用户体验。

所需技能 (优先)

Kotlin, IntelliJ IDEA 插件开发, 基准测试

可能的导师

Abduqodiri Qurbonzoda, JetBrains