Spec-Zone.ru › Kotlin 2

Google Summer of Code с Kotlin 2023

В этой статье содержится список идей для проектов для Google Summer of Code с Kotlin 2023.

Google Summer of Code 2023 уже завершился. Если вы хотите принять участие в GSoC 2024, ознакомьтесь с этим списком идей для проектов.

Идеи для проектов

Protobuf для Kotlin Multiplatform [сложный, 350 ч]

Описание

Добавить в protoc поддержку протоколов Kotlin/Common с Kotlin/Native (iOS) runtime и взаимодействием с Objective-C.

Мотивация

Несмотря на то, что для protobuf существует множество платформенных реализаций, использовать их в проектах Kotlin Multiplatform невозможно.

Ожидаемые результаты

Спроектировать и реализовать поддержку Protobuf в Kotlin Multiplatform и внести свой вклад в следующие проекты:

  • GitHub — protocolbuffers/protobuf: Protocol Buffers — формат обмена данными от Google

  • GitHub — google/protobuf-gradle-plugin

  • Плагин Gradle для Kotlin Multiplatform

Необходимые навыки (желательно)

  • Kotlin

  • Objective-C

  • C++

Сообщения об ошибках компилятора Kotlin [сложный, 350 ч]

Описание

Улучшить сообщения об ошибках компилятора K2 для Kotlin: сделать их более информативными и подробными (как в Rust).

Мотивация

Сообщения об ошибках компилятора Rust часто считают самыми полезными среди сообщений всех компиляторов. Компилятор Kotlin K2 предоставляет отличную основу для улучшения сообщений об ошибках в Kotlin, но его потенциал используется не полностью.

Ожидаемые результаты

Используя StackOverflow и другие источники данных, выявить распространённые ошибки компилятора, устранение которых принесёт пользователям значительную пользу. Внести изменения в компилятор, чтобы улучшить сообщения об этих ошибках.

Необходимые навыки (желательно)

  • Kotlin

  • Архитектура компиляторов

Библиотеки Kotlin Multiplatform [лёгкий или средний, 175 или 350 ч]

Описание

Создать и опубликовать в Maven Central востребованные библиотеки Kotlin Multiplatform. Например, библиотеки для сжатия данных и криптографии.

Мотивация

Kotlin Multiplatform — относительно новая технология, для которой нужны дополнительные библиотеки, работающие независимо от платформы (Kotlin/Common) и/или имеющие платформенные реализации (expect/actual).

Ожидаемые результаты

Спроектировать и выпустить как минимум одну библиотеку Kotlin Multiplatform, уделив больше внимания JVM/Android и Kotlin/Native (iOS), чем другим целевым платформам (Kotlin/JS).

Необходимые навыки (желательно)

  • Kotlin

  • Objective-C

Конвертер Groovy в Kotlin DSL для Gradle [средний, 350 ч]

Описание

Цель проекта — создать конвертер Groovy в Kotlin с основным упором на скрипты Gradle. Начнём с простых сценариев, например с автоматического преобразования IDE объявлений зависимостей в стиле Groovy, вставленных пользователем в скрипт Kotlin. Позже добавим поддержку более сложных конструкций кода и преобразования целых файлов.

Мотивация

Kotlin DSL для Gradle становится всё популярнее и вскоре может стать вариантом по умолчанию для сборки проектов с помощью Gradle. Однако во многих документах и ресурсах о Gradle по-прежнему используется Groovy, а вставка примеров Groovy в build.gradle.kts требует ручного редактирования. Кроме того, многие новые возможности Gradle сначала будут появляться в Kotlin, поэтому пользователи будут переходить с Groovy DSL на Kotlin DSL. Автоматическое преобразование кода конфигурации сборки значительно упростит такой переход и сэкономит много времени.

Ожидаемые результаты

Плагин для IntelliJ IDEA, преобразующий код Groovy в Kotlin с основным упором на DSL для Gradle.

Необходимые навыки (желательно)

  • Базовые знания Gradle

  • Базовые знания парсеров и принципов работы компиляторов

  • Базовые знания Kotlin

Редактирование Gradle KTS в Eclipse [средний, 350 ч]

Прочитайте запись в блоге об этом проекте

Описание

Улучшить процесс редактирования скриптов Gradle на Kotlin (KTS) в Eclipse.

Мотивация

IntelliJ IDEA и Android Studio отлично поддерживают редактирование скриптов сборки Gradle на KTS, но поддержка в Eclipse оставляет желать лучшего. Можно улучшить переход к определению по Ctrl+щелчку, автодополнение кода и подсветку ошибок.

Ожидаемые результаты

Внести изменения в плагин Gradle для Eclipse, чтобы упростить редактирование KTS.

Необходимые навыки (желательно)

  • Kotlin

  • Gradle

  • Платформа Eclipse и плагины

Улучшение поддержки передачи параметров в плагине Kotlin для IntelliJ IDEA [средний, 350 ч]

Описание и мотивация

Плагин Kotlin обеспечивает поддержку языка Kotlin в IntelliJ IDEA и Android Studio. В рамках этого проекта вы улучшите поддержку передачи параметров в плагине.

Принцип «предпочитать композицию наследованию» широко известен. IntelliJ IDEA отлично поддерживает написание кода с наследованием (IDE предлагает автодополнение и быстрые исправления), но поддержка кода, использующего композицию вместо наследования, ещё не реализована.

Основная проблема при работе с кодом, активно использующим композицию, — передача параметров. В частности:

  • IDE не предлагает автодополнение объявлений параметров, которые можно передать в качестве аргументов другим функциям, сейчас использующим значения параметров по умолчанию.

  • IDE не переименовывает цепочку передаваемых параметров.

  • IDE не предлагает быстрых исправлений для заполнения всех обязательных аргументов параметрами, которые можно передать.

Один из примеров, где такая поддержка была бы особенно полезна, — Jetpack Compose. Jetpack Compose, современный набор инструментов Android для создания пользовательского интерфейса, активно использует композицию функций и передачу параметров. Работать с функциями @Composable быстро становится утомительно, потому что у них много параметров. Например, у androidx.compose.material.TextField 19 параметров.

Ожидаемые результаты

  • Улучшенные подсказки автодополнения параметров и аргументов в IntelliJ IDEA.

  • Реализованные быстрые исправления IDE, предлагающие заполнить все обязательные аргументы параметрами с совпадающими именами и типами.

  • Рефакторинг «Переименовать» переименовывает цепочку передаваемых параметров.

  • Все прочие улучшения IDE, связанные с передачей параметров и функциями с большим количеством параметров.

Необходимые навыки (желательно)

  • Знание Kotlin и Java

  • Умение ориентироваться в большой кодовой базе

Улучшение API библиотеки kotlinx-benchmark и удобства её использования [лёгкий, 175 ч]

Прочитайте запись в блоге об этом проекте

Описание

kotlinx-benchmark — это библиотека с открытым исходным кодом для бенчмаркинга мультиплатформенного кода, написанного на Kotlin. У неё есть базовый каркас, но отсутствуют полезные для повседневной работы функции: детальная настройка бенчмарков (например, единицы времени и режимы), паритет возможностей бенчмаркинга JVM и Kotlin/Native, интерфейс командной строки и современная поддержка Gradle. Документация, интеграционные тесты и примеры также нуждаются в обновлении.

Мотивация

Библиотека уже реализована, но иногда её сложно правильно использовать, и она вводит некоторых пользователей в заблуждение. Улучшение удобства использования библиотеки принесёт большую пользу сообществу Kotlin.

Ожидаемые результаты

  • У библиотеки есть понятная документация с примерами использования.

  • API библиотеки прост и удобен в использовании.

  • Возможности для бенчмаркинга кода Kotlin/JVM доступны также при тестировании кода на других платформах.

Необходимые навыки (желательно)

  • Kotlin

  • Внутреннее устройство Gradle

Параллельные стеки для корутин Kotlin в отладчике [сложный, 350 ч]

Прочитайте запись в блоге об этом проекте

Описание

Реализовать представление параллельных стеков для корутин Kotlin, чтобы улучшить процесс отладки корутин.

Мотивация

В настоящее время возможности отладки корутин в IntelliJ IDEA очень ограничены. В отладчике Kotlin есть панель корутин, которая позволяет просматривать все корутины и их состояния, но она не очень полезна при отладке приложения с большим количеством корутин. В JetBrains Rider есть функция параллельных стеков, позволяющая изучать потоки и их трассировки стека в виде графа. Такой способ может быть очень удобен для изучения корутин.

Ожидаемые результаты

Используя API отладчика корутин Kotlin, разработать плагин для IntelliJ IDEA, который добавит в отладчик представление параллельных стеков для корутин. Найти способы улучшить графическое представление корутин.

Необходимые навыки (желательно)

  • Kotlin

  • Корутины Kotlin

  • Разработка плагинов для IntelliJ IDEA

5 августа 2025 г.
Google Summer of Code с Kotlin 2024Kotlin для спортивного программирования

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/gsoc-2023.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API