Spec-Zone.ru › Kotlin 2

Создание библиотеки Kotlin для мультиплатформенной разработки

При создании библиотеки Kotlin подумайте о том, чтобы собрать и опубликовать её с поддержкой Kotlin Multiplatform. Это расширит аудиторию вашей библиотеки и обеспечит её совместимость с проектами, предназначенными для нескольких платформ.

Библиотеки Kotlin Multiplatform для различных сценариев использования и целевых платформ можно найти на сайте klibs.io.

В следующих разделах приведены рекомендации, которые помогут эффективно создавать библиотеки Kotlin Multiplatform.

Расширьте охват

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

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

Чтобы упростить создание артефактов, используйте кросс-компиляцию, чтобы публиковать библиотеки Kotlin Multiplatform с любого хоста. Это позволяет создавать артефакты .klib для целевых платформ Apple без компьютера Apple.

Для целевых платформ Kotlin/Native рассмотрите возможность использования поэтапного подхода, чтобы поддержать все возможные целевые платформы.

Проектируйте API для использования из общего кода

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

По возможности задавайте разумные конфигурации по умолчанию и включайте параметры конфигурации для конкретных платформ. Хорошие настройки по умолчанию позволяют использовать API библиотеки из общего кода Kotlin, не реализуя платформенные варианты для настройки библиотеки.

Размещайте API в наиболее широком подходящем исходном наборе, соблюдая следующий порядок приоритетов:

  • Исходный набор commonMain: API в исходном наборе commonMain доступны на всех платформах, которые поддерживает библиотека. Старайтесь размещать здесь большую часть API библиотеки.

  • Промежуточные исходные наборы: Если некоторые платформы не поддерживают определённые API, используйте промежуточные исходные наборы для целевых платформ. Например, можно создать исходный набор concurrent для целевых платформ с поддержкой многопоточности или исходный набор nonJvm для всех платформ, отличных от JVM.

  • Исходные наборы для конкретных платформ: Для платформенных API используйте такие исходные наборы, как androidMain.

Подробнее об исходных наборах в проектах Kotlin Multiplatform см. в разделе Иерархическая структура проекта.

Обеспечьте единообразное поведение на всех платформах

Чтобы библиотека вела себя одинаково на всех поддерживаемых платформах, API мультиплатформенной библиотеки должны принимать одинаковый диапазон допустимых входных данных, выполнять одни и те же действия и возвращать одинаковые результаты на всех платформах. Аналогично библиотека должна единообразно обрабатывать недопустимые входные данные и одинаково сообщать об ошибках или выбрасывать исключения на всех платформах.

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

С помощью объявлений expect и actual можно объявлять функции в общем коде и предоставлять для них платформенные реализации с полным доступом к нативным API каждой платформы. Для надёжного использования из общего кода эти реализации также должны вести себя одинаково.

Если API ведут себя одинаково на всех платформах, их достаточно задокументировать один раз в исходном наборе commonMain.

Если различий между платформами не избежать, например когда одна платформа поддерживает более широкий набор входных данных, по возможности сведите их к минимуму. Например, не обязательно ограничивать функциональность одной платформы, чтобы она соответствовала возможностям остальных. В таких случаях чётко документируйте конкретные различия.

Тестируйте на всех платформах

Для мультиплатформенных библиотек можно писать мультиплатформенные тесты в общем коде и запускать их на всех платформах. Регулярный запуск этого общего набора тестов на поддерживаемых платформах поможет убедиться в корректной и единообразной работе библиотеки.

Регулярное тестирование целевых платформ Kotlin/Native на всех публикуемых платформах может быть непростой задачей. Однако для обеспечения более широкой совместимости рассмотрите возможность публикации библиотеки для всех поддерживаемых ею целевых платформ, используя поэтапный подход при проверке совместимости.

Используйте библиотеку kotlin-test, чтобы писать тесты в общем коде и запускать их с помощью платформенных средств выполнения тестов.

Учитывайте пользователей, не работающих с Kotlin

Kotlin Multiplatform обеспечивает взаимодействие с нативными API и языками на всех поддерживаемых целевых платформах. При создании библиотеки Kotlin Multiplatform подумайте, может ли пользователям понадобиться использовать типы и объявления вашей библиотеки из языков, отличных от Kotlin.

Например, если некоторые типы вашей библиотеки будут доступны в коде Swift благодаря взаимодействию языков, спроектируйте их так, чтобы ими было удобно пользоваться в Swift. В Kotlin-Swift interopedia приведены полезные сведения о том, как выглядят API Kotlin при вызове из Swift.

Продвигайте свою библиотеку

Вы можете разместить свою библиотеку на klibs.io — платформе для поиска, где разработчики находят библиотеки Kotlin Multiplatform и оценивают их.

На klibs.io автоматически размещаются библиотеки, соответствующие критериям платформы. Чтобы узнать, подходит ли ваша библиотека, см. раздел Часто задаваемые вопросы.

28 июля 2026 г.
Рекомендации по созданию информативной документации для авторов библиотекНачало работы с пользовательскими скриптами Kotlin — руководство

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

Spec-Zone.ru

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