Spec-Zone.ru › Kotlin 2

Добавление зависимостей в проект

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

Типы зависимостей

В проектах Kotlin Multiplatform можно использовать два типа зависимостей:

  • Мультиплатформенные зависимости. Это мультиплатформенные библиотеки, поддерживающие несколько целевых платформ и доступные в общем наборе исходного кода, commonMain.

    Многие современные библиотеки Android уже поддерживают несколько платформ, например Koin, Coil и SQLDelight. Больше мультиплатформенных библиотек можно найти на klibs.io — поисковом сервисе JetBrains для поиска библиотек Kotlin Multiplatform.

  • Нативные зависимости. Это библиотеки для конкретных платформ из соответствующих экосистем. В нативных проектах этими библиотеками обычно управляют с помощью платформенных инструментов, таких как Gradle для Android и Swift Package Manager для iOS.

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

Для обоих типов зависимостей можно использовать локальные и внешние репозитории.

Добавление мультиплатформенной зависимости

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

Давайте сделаем приветствие немного праздничнее: добавим функцию, которая будет показывать количество дней до Нового года. Помимо версии ОС, для работы с датами в общем коде удобнее всего использовать библиотеку kotlinx-datetime, полностью поддерживающую несколько платформ.

  1. Откройте файл gradle/libs.versions.toml и добавьте зависимость kotlinx-datetime в каталог версий:

    [versions]
    kotlinx-datetime = "0.8.0"
    
    [libraries]
    kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
    
  2. Откройте файл sharedLogic/build.gradle.kts и добавьте ссылку на эту запись библиотеки в раздел настройки набора исходного кода общего кода:

    kotlin {
        //... 
        sourceSets {
            commonMain.dependencies {
                implementation(libs.kotlinx.datetime)
            } 
        }
    }
    
  3. Выберите пункт меню Сборка | Синхронизировать проект с файлами Gradle или нажмите кнопку Синхронизировать изменения Gradle в редакторе скрипта сборки, чтобы синхронизировать файлы Gradle: Synchronize Gradle files

Вызов API kotlinx-datetime

Добавив зависимость, вы можете добавить в общий код вычисления даты и времени:

  1. Щёлкните правой кнопкой мыши каталог sharedLogic/src/commonMain/.../greetingkmp и выберите Создать | Класс/файл Kotlin, чтобы создать новый файл NewYear.kt.

  2. В NewYear.kt добавьте две функции, которые с помощью арифметики дат datetime вычисляют количество дней от сегодняшнего дня до начала следующего года и формируют фразу для отображения:

    fun daysUntilNewYear(): Int {
        val today = Clock.System.todayIn(TimeZone.currentSystemDefault())
        val closestNewYear = LocalDate(today.year + 1, 1, 1)
        return today.daysUntil(closestNewYear)
    }
    
    fun daysPhrase(): String = "There are only ${daysUntilNewYear()} days left until New Year! 🎆"
    
  3. Добавьте все необходимые импорты, предложенные IDE. Убедитесь, что импортируете kotlin.time.Clock, а не kotlinx.datetime.Clock.

  4. В файле Greeting.kt обновите класс Greeting, чтобы увидеть результат:

    class Greeting {
        private val platform: Platform = getPlatform()
    
        fun greet(): List<String> = buildList {
            add(if (Random.nextBoolean()) "Hi!" else "Hello!")
            add("Guess what this is! > ${platform.name.reversed()}!")
            add(daysPhrase())
        }
    }
    
  5. Чтобы увидеть результаты, повторно запустите конфигурации запуска androidApp и iosApp в IntelliJ IDEA:

Updated mobile multiplatform app with external dependencies

Следующий шаг

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

Перейти к следующей части

См. также

  • Узнайте, как работать с мультиплатформенными зависимостями всех типов: библиотеками Kotlin, библиотеками Kotlin Multiplatform и другими мультиплатформенными проектами.

  • Узнайте, как добавлять зависимости Android и зависимости iOS с CocoaPods или без них для использования в наборах исходного кода, предназначенных для конкретных платформ.

  • Посмотрите примеры того, как использовать библиотеки Android и iOS в демонстрационных проектах.

Получить помощь

  • Kotlin Slack. Получите приглашение и присоединитесь к каналу #multiplatform.

  • Трекер задач Kotlin. Сообщить о новой проблеме.

21 мая 2026 г.
Обновление пользовательского интерфейсаСовместное использование большего объёма логики в iOS и Android

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

Spec-Zone.ru

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