Модуль KMP только с общим основным исходным кодомAndroid

Форум для тех, кто программирует под Android
Anonymous
Модуль KMP только с общим основным исходным кодом

Сообщение Anonymous »

Я хочу создать простой независимый от платформы модуль в своем проекте KMP. Этот модуль предназначен для бизнес-логики предметной области.
Я думаю, что достиг этого с помощью следующих шагов:
  • Создайте модуль KMP с помощью Android Studio «Новый->Модуль->Общий модуль KMP»
  • Измените build.gradle.kts и удалите исходный набор, специфичный для платформы. объявления
  • Удалить созданный Platform.kt из исходного набора commonMain
  • Sync. На этом этапе сборка завершается успешно, но папки платформы (androidMain, iosMain,..) остаются в модуле, и их невозможно удалить из проводника проекта AS.
  • Удалите папки вручную: откройте терминал и запустите rm -rf domain/src/android*, rm -rf domain/src/ios*
  • Добавьте новый модуль в качестве зависимость от существующего модуля и убедитесь, что на новые классы можно ссылаться и выполнять их во время выполнения.
Пожалуйста, подтвердите, законен ли мой подход?
Вот мой build.gradle.kts:
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidKotlinMultiplatformLibrary)
alias(libs.plugins.androidLint)
}

kotlin {
jvm()
androidLibrary {
namespace = "com.example.domain"
compileSdk = 36
minSdk = 24

withHostTestBuilder {
}

withDeviceTestBuilder {
sourceSetTreeName = "test"
}.configure {
instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}

val xcfName = "domainKit"

iosX64 {
binaries.framework {
baseName = xcfName
}
}

iosArm64 {
binaries.framework {
baseName = xcfName
}
}

iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}

sourceSets {
commonMain {
dependencies {
implementation(libs.kotlin.stdlib)
// Add KMP dependencies here
}
}

commonTest {
dependencies {
implementation(libs.kotlin.test)
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... ceset-only

Вернуться в «Android»