Добавление зависимостей в ваш проект
Вы уже создали свой первый кроссплатформенный проект Kotlin Multiplatform Mobile! Теперь давайте узнаем, как добавлять зависимости от сторонних библиотек, что необходимо для создания успешных кроссплатформенных приложений.
Типы зависимостей
Существует два типа зависимостей, которые вы можете использовать в проектах Multiplatform Mobile:
-
Многоплатформенные зависимости. Это многоплатформенные библиотеки, которые поддерживают несколько целевых платформ и могут использоваться в общем наборе исходного кода,
commonMain.Многие современные библиотеки для Android уже поддерживают многоплатформенность, такие как Koin, Apollo и Okio.
Нативные зависимости. Это обычные библиотеки из соответствующих экосистем. Обычно вы работаете с ними в нативных проектах iOS с помощью CocoaPods или другого менеджера зависимостей и в проектах Android с помощью Gradle.
При работе с общим модулем вы также можете зависеть от нативных зависимостей и использовать их в нативных наборах исходного кода, androidMain и iosMain. Как правило, вам понадобятся эти зависимости, когда вы хотите работать с платформными API, например, с хранилищем безопасности, и есть общая логика.
Для обоих типов зависимостей можно использовать локальные и внешние репозитории.
Добавление многоплатформенной зависимости
Теперь вернемся к приложению и сделаем поздравление немного более праздничным. В дополнение к информации об устройстве добавьте функцию отображения количества дней до Нового года. Библиотека kotlinx-datetime, которая полностью поддерживает многоплатформенность, является наиболее удобным способом работы с датами в вашем общем коде.
Перейдите к файлу
build.gradle.ktsв каталогеshared.-
Добавьте следующую зависимость в зависимости набора исходного кода
commonMain:kotlin { sourceSets { val commonMain by getting { dependencies { implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") } } } } -
Синхронизируйте файлы Gradle, нажав Синхронизировать сейчас в уведомлении.

-
В
shared/src/commonMain/kotlin, создайте новый файлNewYear.ktи обновите его короткой функцией, которая вычисляет количество дней с сегодняшнего дня до Нового года с использованием арифметики датdate-time:import kotlinx.datetime.* fun daysUntilNewYear(): Int { val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) val closestNewYear = LocalDate(today.year + 1, 1, 1) return today.daysUntil(closestNewYear) } -
В
Greeting.kt, обновите функциюgreeting(), чтобы увидеть результат:class Greeting { private val platform: Platform = getPlatform() fun greeting(): String { return "Guess what it is! > ${platform.name.reversed()}!" + "\nThere are only ${daysUntilNewYear()} days left until New Year! 🎆" } } Чтобы увидеть результаты, запустите повторно конфигурации androidApp и iosApp из Android Studio:

Следующий шаг
В следующей части учебника вы добавите больше зависимостей и более сложной логики в свой проект.
См. также
Узнайте, как работать с многоплатформенными зависимостями всех видов: Библиотеки Kotlin, библиотеки Kotlin Multiplatform и другие многоплатформенные проекты.
Узнайте, как добавить зависимости Android и зависимости iOS с или без CocoaPods для использования в наборах исходного кода, специфичных для платформы.
Посмотрите примеры использования библиотек Android и iOS в образцовых проектах (не забудьте проверить столбец "Platform APIs").
Получить помощь
Kotlin Slack. Получите приглашение и присоединитесь к каналу #multiplatform.
Отслеживатель проблем Kotlin. Отправить новую проблему.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform-mobile-dependencies.html