iamthevoid
07/08/2021, 3:55 PMiamthevoid
07/08/2021, 3:55 PMiamthevoid
07/08/2021, 3:56 PMiamthevoid
07/08/2021, 3:58 PM@file:Suppress("UNUSED_VARIABLE")
import ru.rt.buildsrc.android.*
import ru.rt.buildsrc.iOS
import ru.rt.buildsrc.util.implement
plugins {
kotlin("multiplatform")
id("com.android.library")
}
android {
compileSdk = Versions.Android.compileSdk
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdk = Versions.Android.minSdk
targetSdk = Versions.Android.targetSdk
}
buildTypes(action = { createAppBuildTypes() })
compileOptions {
sourceCompatibility = Versions.javaVersion
targetCompatibility = Versions.javaVersion
}
commonLintSettings(fileFactory)
with(configurations) {
(ru.rt.buildsrc.android.BuildTypes.names() + "")
.forEach(::createConfigurations)
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = Versions.Compose.main
}
}
kotlin {
android()
iOS()
sourceSets {
val commonMain by getting {
dependencies {
implement(Dependencies.Modules.libShared)
implementation(Dependencies.Kotlin.coroutines)
implementation(Dependencies.Kodein.core)
}
}
val androidMain by getting {
dependencies {
implementation(Dependencies.AndroidX.appcompat)
implementation(Dependencies.Compose.foundation)
}
}
val iosMain by getting
}
}
iamthevoid
07/08/2021, 4:00 PMiamthevoid
07/08/2021, 4:01 PM@Composable
fun <Component : DkmpScope> BindScope(
provideComponent: () -> Component,
content: @Composable (Component) -> Unit
) {
val component by remember { mutableStateOf(provideComponent()) }
content(component)
}