Spec-Zone.ru › Kotlin 1.9

Google Summer of Code с Kotlin

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

Ресурсы Kotlin:

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

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

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

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

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

  1. Изучите часто задаваемые вопросы (FAQ) GSoC и объявление о программе.

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

    • Официальная веб-страница Kotlin — отличное место для начала.

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

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

    • Следите за Twitter-аккаунтом Kotlin, чтобы оставаться в курсе последних новостей и событий.

    • Посмотрите канал Kotlin на YouTube для получения руководств, советов и последних обновлений.

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

    • Изучите общие руководящие принципы для внесения изменений в Kotlin.

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

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

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

Приём заявок с 20 марта по 4 апреля 2023 года.

  1. Изучите идеи проектов и выберите тот, над которым вы хотели бы работать.

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

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

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

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

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

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

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

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

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

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

Kotlin Multiplatform protobufs [Сложно, 350 ч]

Описание

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

Мотивация

Хотя protobufs имеют много платформных реализаций, нет способа использовать их в проектах Kotlin Multiplatform.

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

Проектирование и разработка поддержки Kotlin Multiplatform Protobuf, завершающееся внесением вклада в:

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

  • GitHub – google/protobuf-gradle-plugin

  • Плагин Kotlin Multiplatform Gradle

Требуемые навыки (желательно)

  • 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 Gradle DSL [Средне, 350 ч]

Описание

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

Мотивация

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

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

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

Требуемые навыки (желательно)

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

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

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

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

Описание

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

Мотивация

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

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

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

Требуемые навыки (желательно)

  • Kotlin

  • Gradle

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Требуемые навыки (желательно)

  • Знание Kotlin и Java

  • Способность перемещаться по большому кодовому основанию

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

Описание

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

Мотивация

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

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

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

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

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

Требуемые навыки (желательно)

  • Kotlin

  • Внутренности Gradle

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

Описание

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

Мотивация

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

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

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

Требуемые навыки (желательно)

  • Kotlin

  • Kotlin coroutines

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

Последнее изменение: 20 марта 2023
Шесть самых популярных кроссплатформенных фреймворков для разработки приложений Безопасность

© 2010–2023 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