Spec-Zone.ru › Kotlin 1.8

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

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

    Synchronize the Gradle files
  4. В 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)
    }
    
  5. В 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! 🎆"
        }
    }
    
  6. Чтобы увидеть результаты, запустите повторно конфигурации androidApp и iosApp из Android Studio:

Updated mobile multiplatform app with external dependencies

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

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

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

См. также

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

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

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

Получить помощь

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

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

Последнее изменение: 10 января 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