Kotlin Multiplatform (KMP) позволяет использовать код Kotlin на разных платформах. Прежде чем приступить к созданию приложений с помощью KMP, вам необходимо настроить среду, как описано в этом документе. Вы также можете обратиться к официальной документации Jetbrain.
Установите или обновите необходимые инструменты
- Установите или обновите последнюю стабильную версию Android Studio .
- Обновите плагин Kotlin , входящий в состав Android Studio, до последней версии, чтобы избежать проблем с совместимостью.
- (Необязательно) Для разработки iOS установите Xcode для создания пользовательского интерфейса и при необходимости добавьте код Swift или Objective-C.
Создайте мультиплатформенный проект Kotlin
Вы можете использовать мастер Kotlin Multiplatform от Jetbrains, чтобы создать новый проект KMP. Обязательно выберите параметр «Не использовать общий доступ к пользовательскому интерфейсу» , чтобы сохранить собственный пользовательский интерфейс.
Структура проекта
Проекты KMP имеют структуру, аналогичную проектам Android.
Проект KMP содержит модули, специфичные для платформы, а также общий модуль. Добавьте свой код для конкретной платформы в соответствующий модуль. Например, добавьте пользовательский интерфейс приложения Android в модуль androidApp и пользовательский интерфейс приложения iOS в iosApp . Любой код, который вы хотите использовать между платформами, находится в общем модуле.
Общий модуль использует Gradle в качестве системы сборки, как и остальная часть проекта. Вы можете объявить общие и специфичные для платформы зависимости, используя наборы исходных кодов. Например, если ваше приложение использует Ktor для работы в сети, вам необходимо добавить зависимость OkHttp для Android и зависимость darwin для iOS. Обратите внимание, что некоторым библиотекам требуются только общие зависимости и не нужны зависимости, специфичные для платформы.
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
Когда вы добавляете новую библиотеку в общий модуль вашего приложения, обязательно проверьте наличие необходимых зависимостей для каждой платформы.