Spec-Zone.ru › Kotlin 2

Google Summer of Code с Kotlin 2024

В этой статье содержится список идей для проектов Google Summer of Code с Kotlin 2024 и рекомендации для участников

Ресурсы по Kotlin:

  • Репозиторий Kotlin на GitHub

  • Slack-канал Kotlin и канал Slack #gsoc

Если у вас есть вопросы, свяжитесь с нами по адресу gsoc@kotlinfoundation.org

Рекомендации для участников Kotlin в Google Summer of Code (GSoC)

Начало работы

  1. Ознакомьтесь с разделом часто задаваемых вопросов о GSoC и описанием программы.

  2. Познакомьтесь с языком Kotlin:

    • Официальный сайт Kotlin — отличное место для начала.

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

    • Посмотрите курсы по Kotlin в JetBrains Academy или варианты обучения от команды Android.

    • Подпишитесь на аккаунты Kotlin в X или Kotlin в Bluesky, чтобы быть в курсе последних новостей и событий.

    • Загляните на YouTube-канал Kotlin, где вы найдете обучающие материалы, советы и последние новости.

  3. Познакомьтесь с сообществом Kotlin с открытым исходным кодом:

    • Изучите общие рекомендации по участию в разработке Kotlin.

    • Присоединитесь к каналу Kotlin в Slack, чтобы общаться с другими разработчиками и получать ответы на свои вопросы.

    • Присоединитесь к каналу #gsoc, чтобы задавать вопросы и получать помощь от команды GSoC.

Как подать заявку

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

  2. Если вы не знакомы с Kotlin, прочитайте вводную информацию на сайте Kotlin.

  3. Ознакомьтесь с рекомендациями для участников GSoC.

  4. Подайте заявку через сайт GSoC.

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

    • Расскажите, почему вас интересует Kotlin, и опишите свой опыт работы с ним.

    • Если вы участвуете в проектах с открытым исходным кодом, укажите свой опыт работы над ними.

    • Если у вас есть аккаунт на GitHub, аккаунт в Twitter, блог или портфолио технических или научных публикаций, укажите и их.

    • Сообщите о любых обстоятельствах, которые могут помешать вам соблюдать график GSoC, например об экзаменах или отпуске.

Спасибо! Мы с нетерпением ждем ваших заявок!

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

Инкрементальная компиляция для компилятора Kotlin в WebAssembly [Сложный, 350 часов]

Инкрементальная компиляция — это метод, позволяющий ускорить компиляцию за счет повторной компиляции только измененных файлов, а не всей программы целиком (то есть выполнения полной сборки). Сейчас компилятор Kotlin в Wasm поддерживает только полные сборки, но в рамках этого проекта мы добавим поддержку инкрементальной компиляции.

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

Реализация функции инкрементальной компиляции в компиляторе Kotlin в WebAssembly, которая ускорит рабочий процесс разработки.

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

Kotlin

Возможный наставник

Артём Кобзарь, JetBrains

Compose Multiplatform с нативными привязками Node.js для Skia [Сложный, 350 часов]

Compose Multiplatform — это декларативный фреймворк для создания пользовательских интерфейсов на Kotlin, совместно используемых на разных платформах. Сейчас для отрисовки настольных приложений используется JVM. Но что, если применить Compose Multiplatform для веба и попробовать запустить приложение за пределами браузера, используя нативные привязки Skia? Повысит ли это производительность настольных приложений и снизит ли потребление памяти? Или, наоборот, ухудшит показатели? В рамках этого проекта мы это выясним!

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

Интеграция привязок Skia с Compose Multiplatform и оценка влияния на производительность настольных приложений.

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

Kotlin, Node.js, C++ или Rust

Возможный наставник

Артём Кобзарь, JetBrains

Генератор галерей компонентов Compose Multiplatform [Средний, 350 часов]

Compose Multiplatform — это декларативный фреймворк для создания пользовательских интерфейсов на Kotlin, совместно используемых на разных платформах. В начале эпохи React в веб-разработке был создан Storybook. Предложенный в Storybook подход, позволяющий описывать состояния компонентов и генерировать галерею всей библиотеки пользовательского интерфейса, по-прежнему остается одним из основных способов документирования в веб-разработке. Можно ли сделать то же самое с Compose Multiplatform и сгенерировать галерею веб-компонентов, а также галереи для мобильных и настольных платформ? Попробуем реализовать это в рамках проекта.

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

Создание инструмента для генерации галерей компонентов пользовательского интерфейса для веб-, мобильных и настольных платформ с помощью Compose Multiplatform.

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

Kotlin, Jetpack Compose, проектирование UI/UX

Возможный наставник

Артём Кобзарь, JetBrains

Улучшения Kotlin DSL для декларативного Gradle [Средний, 175 часов]

В ноябре прошлого года команда Gradle объявила о новом проекте Declarative Gradle, в рамках которого в проект был внедрен более высокоуровневый Kotlin DSL. Мы приглашаем участников GSoC присоединиться к нам и поработать над улучшением взаимодействия разработчиков с новым DSL, в частности, реализовать в плагинах Gradle возможность расширения для поддержки наиболее распространенных интеграций проектов на Kotlin и Java: статического анализа, тестовых фреймворков, таких как Kotest, и других.

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

Реализация возможностей расширения Kotlin DSL для Gradle и улучшение поддержки распространенных интеграций проектов.

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

Kotlin, Gradle, Java, статический анализ

Возможный наставник

Олег Ненашев, Gradle

Рекомендации Gradle

Тестовый фреймворк для примеров документации Kotlin DSL [Легкий или средний, 90 или 175 часов]

Во многих проектах, в том числе в Gradle, используется множество примеров Kotlin DSL и фрагментов кода (примеры можно посмотреть в документации Gradle). Их проверка на нескольких версиях сопряжена с определенными трудностями, поскольку ради краткости фрагменты часто содержат неполный код. Мы хотели бы создать тестовый фреймворк, который упростит проверку этих примеров с помощью фреймворка модульного тестирования (Kotest или JUnit 5) в GitHub Actions и TeamCity.

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

Реализация базового тестового фреймворка для примеров Kotlin DSL с интеграцией в GitHub Actions для непрерывного тестирования.

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

Kotlin, тестовые фреймворки, CI/CD

Возможный наставник

Олег Ненашев, Gradle

Рекомендации Gradle

Gradle Build Server — поддержка проектов Android [Средний или сложный, 175 или 350 часов]

Kotlin и Gradle — стандартный выбор для сборки проектов Android. В ноябре 2023 года команда Microsoft объявила о проекте Gradle Build Server — реализации протокола Build Server Protocol (BSP) для Gradle. Было бы здорово добавить в него полную поддержку сборок Android. В рамках проектов меньшего масштаба можно реализовать автоматическое обнаружение задач Gradle и их отмену в Gradle Build Server.

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

Реализация поддержки проектов Android в Gradle Build Server, включая автоматическое обнаружение задач и их отмену.

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

Kotlin, Gradle, разработка для Android, Visual Studio Code

Возможный наставник

Олег Ненашев, Gradle

Рекомендации Gradle

Профилирование использования памяти в тестах производительности Kotlin/Native [Средний, 175 часов]

Библиотека kotlinx-benchmark — это набор инструментов с открытым исходным кодом для тестирования производительности кода Kotlin на различных платформах. Сейчас она поддерживает профилирование сборщика мусора для JVM и показывает объем выделенной памяти для каждого тестового метода. Цель проекта — добавить аналогичные возможности профилирования для Kotlin/Native и приблизить возможности тестирования производительности на разных платформах к единому стандарту.

Участник будет тесно сотрудничать с командой Kotlin/Native, чтобы создать API для доступа к данным об аллокациях из менеджера памяти Kotlin/Native. Цель — формировать отчеты в формате, соответствующем отчетам JVM, чтобы обеспечить единообразное представление данных на разных платформах. Кроме того, проект предусматривает выявление и устранение несоответствий в форматах отчетов для других возможностей библиотеки, чтобы стандартизировать результаты тестирования производительности и обеспечить всесторонний кроссплатформенный анализ.

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

Реализация профилирования использования памяти в kotlinx-benchmark для Kotlin/Native и стандартизация результатов тестирования производительности.

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

Kotlin, Kotlin/Native, тестирование производительности, профилирование памяти

Возможный наставник

Абдукодири Курбонзода, JetBrains
Александр Шабалин, JetBrains

Поддержка платформы Android в kotlinx-benchmark [Средний, 175 часов]

Библиотека kotlinx-benchmark — это инструмент с открытым исходным кодом для тестирования производительности кода Kotlin на разных платформах, включая JVM, JS, WasmJs и Native. Несмотря на широкую совместимость, библиотека пока не поддерживает тестирование производительности на Android. Цель проекта — устранить этот пробел. Планируется использовать существующую библиотеку для Android, например androidx.benchmark, для реализации этой функциональности. Важная часть проекта — обеспечить поддержку Android всех функций, доступных сейчас на других платформах, сохранив таким образом мультиплатформенные возможности библиотеки.

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

Интеграция поддержки тестирования производительности на платформе Android в kotlinx-benchmark, обеспечивающая паритет функций с другими платформами.

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

Kotlin, разработка для Android, тестирование производительности

Возможный наставник

Абдукодири Курбонзода, JetBrains
Rahul Ravikumar, Google

Запуск тестов производительности kotlinx-benchmark одним щелчком в IntelliJ IDEA [Средний, 175 часов]

kotlinx-benchmark — это библиотека с открытым исходным кодом для тестирования производительности мультиплатформенного кода на Kotlin. В нее входит плагин Gradle, который добавляет задачи для запуска тестов производительности. Однако для выполнения этих задач нужно открыть панель Gradle в IDE или воспользоваться терминалом. Кроме того, для запуска отдельного теста требуется выполнить дополнительные действия, что усложняет процесс. Чтобы устранить это неудобство и упростить работу, цель проекта — дать пользователям возможность запускать отдельный тест производительности или весь набор прямо из интерфейса IntelliJ IDEA, как это можно делать с модульными тестами. Для этого может потребоваться сотрудничество с командой IntelliJ IDEA и/или внесение изменений непосредственно в проект IntelliJ.

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

Интеграция возможности запуска тестов производительности kotlinx-benchmark одним щелчком в IntelliJ IDEA и улучшение взаимодействия с пользователем.

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

Kotlin, разработка плагинов для IntelliJ IDEA, тестирование производительности

Возможный наставник

Абдукодири Курбонзода, JetBrains

5 августа 2025 г.
Google Summer of Code с Kotlin 2025Google Summer of Code с Kotlin 2023

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

Spec-Zone.ru

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