Spec-Zone.ru › Kotlin 1.9

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

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

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

В проектах 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. Синхронизируйте файлы Gradle, нажав Синхронизировать сейчас в уведомлении.

    Synchronize the Gradle files
  4. В shared/src/commonMain/kotlin, создайте новый файл NewYear.kt в папке проекта.

  5. Обновите файл с короткой функцией, которая вычисляет количество дней от сегодняшнего дня до Нового года, используя арифметику дат 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)
    }
    
  6. В 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! 🎆"
        }
    }
    
  7. Чтобы увидеть результаты, перезапустите конфигурации androidApp и iosApp из Android Studio:

Updated mobile multiplatform app with external dependencies

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

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

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

См. также

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

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

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

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

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

  • Отслеживание проблем Kotlin. Отправить новую проблему.

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

© 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

Spec-Zone.ru

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