Spec-Zone.ru › Kotlin 1.7

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

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

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

Существует два типа зависимостей, которые вы можете использовать в проектах Multiplatform Mobile:

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

    Многие современные библиотеки для Android уже поддерживают многоплатформенность, такие как Koin, Apollo и Okio.

  • Нативные зависимости. Это обычные библиотеки из соответствующих экосистем. Обычно с ними работают в нативных проектах iOS с помощью CocoaPods или другого менеджера зависимостей и в проектах Android с помощью Gradle.

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

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

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

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

Теперь вернемся к приложению и сделаем приветствие немного более праздничным. В дополнение к информации о устройстве добавьте функцию для отображения количества дней, оставшихся до Нового года. Библиотека kotlinx-datetime, которая имеет полную многоплатформенную поддержку, является наиболее удобным способом работы с датами в вашем общем коде.

  1. Перейдите к файлу build.gradle.kts в каталоге shared.

  2. Добавьте следующую зависимость в зависимости набора исходного кода commonMain:

    kotlin {
        sourceSets {
            val commonMain by getting {
                dependencies {
                    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
                }
            } 
        }
    }
    
  3. В 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)
    }
    
  4. В 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! 🎅🏼 "
        }
    }
    
  5. Запустите обновленное приложение на Android и iOS и посмотрите результаты:

Updated mobile multiplatform app with external dependencies

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

Добавьте больше зависимостей и более сложную логику в свой проект.

См. также

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

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

  • Посмотрите примеры использования библиотек Android и iOS в образцовых проектах (не забудьте проверить столбец «API платформы»).

Получение помощи

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

  • Отслеживание проблем Kotlin. Сообщить о новой проблеме.

Последнее изменение: 29 сентября 2022 г.
Создание первого кроссплатформенного приложения Обновление приложения

© 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

Spec-Zone.ru

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