Добавление зависимостей в ваш проект
Вы уже создали свой первый кроссплатформенный проект Kotlin Multiplatform! Теперь давайте узнаем, как добавлять зависимости к сторонним библиотекам, что необходимо для создания успешных кроссплатформенных приложений.
Типы зависимостей
В проектах 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, обновите функциюgreet(), чтобы увидеть результат:class Greeting { private val platform: Platform = getPlatform() fun greet(): 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 в образцовых проектах (не забудьте проверить столбец «API платформы»).
Получение помощи
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