Добавление зависимостей в ваш проект
Вы уже создали свой первый кроссплатформенный проект 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") } } } } -
В
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! 🎅🏼 " } } Запустите обновленное приложение на Android и iOS и посмотрите результаты:

Следующий шаг
Добавьте больше зависимостей и более сложную логику в свой проект.
См. также
Узнайте, как работать с многоплатформенными зависимостями всех типов: Kotlin-библиотеки, Kotlin Multiplatform-библиотеки и другие многоплатформенные проекты.
Узнайте, как добавить зависимости Android и iOS-зависимости с или без CocoaPods для использования в наборах исходного кода, специфичных для платформы.
Посмотрите примеры использования библиотек Android и iOS в образцовых проектах (не забудьте проверить столбец «API платформы»).
Получение помощи
Kotlin Slack. Получите приглашение и присоединяйтесь к каналу #multiplatform.
Отслеживание проблем Kotlin. Сообщить о новой проблеме.
© 2010–2022 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