https://kotlinlang.org logo
#multiplatform
Title
# multiplatform
d

Darmaheev

09/11/2019, 7:52 AM
Hello everyone, I’m writing a multiplatform library that use in android and ios applications. To work with the database I decided to use sqldeligh. When i add the driver database in androidMain I need to use ‘’import android.content.Context import com.squareup.sqldelight.android.AndroidSqliteDriver’’, code:
Copy code
import android.content.Context
import com.squareup.sqldelight.android.AndroidSqliteDriver

lateinit var appContext: Context

actual fun createDb(): MobileDatabase {
    val driver = AndroidSqliteDriver(MobileDatabase.Schema, appContext, "mobileDatabase.db")
    return MobileDatabase(driver)
}
My question is how to drag classes from SDKs into multiplatform libraries. My build.gradle:
Copy code
plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.50'
    id 'kotlinx-serialization' version '1.3.50'
    id 'net.researchgate.release' version '2.6.0'
    id 'com.squareup.sqldelight' version '1.2.0'
    id 'com.android.library' version '3.5.0'
}
repositories {
    mavenLocal()
    google()
   mavenCentral()
}
group '***'
version = "$version"

apply plugin: "com.squareup.sqldelight"

sqldelight {
    MobileDatabase{
        packageName = "***"
        sourceFolders = ["sqldelight"]
        schemaOutputDirectory = file("src/main/sqldelight/migrations")
    }

}

apply plugin: 'maven-publish'

kotlin {
    def coroutine_version = "1.3.0"
    def ktor_version = "1.2.4"
    def serializer_version = "0.12.0"
    def sqldelight_version = "1.2.0"

    sourceSets {
        commonMain {
            dependencies {
                api 'org.jetbrains.kotlin:kotlin-stdlib-common'
                implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutine_version"
                implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serializer_version"
                implementation "io.ktor:ktor-client-core:$ktor_version"
                implementation "io.ktor:ktor-client-logging:$ktor_version"
                implementation "com.squareup.sqldelight:runtime:$sqldelight_version"
            }
        }
        androidMain {
            dependencies {
                api 'org.jetbrains.kotlin:kotlin-stdlib'
                implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutine_version"
                implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutine_version"
                implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializer_version"
                implementation "io.ktor:ktor-client-android:$ktor_version"
                implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
                implementation "com.squareup.sqldelight:android-driver:$sqldelight_version"
            }
        }
        jsMain {
            dependencies {
                api "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutine_version"
                implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serializer_version"
                implementation "io.ktor:ktor-client-js:$ktor_version"
                implementation "io.ktor:ktor-client-logging-js:$ktor_version"
            }

        }
        iosMain {
            dependencies {
                api "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutine_version"
                implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serializer_version"
                implementation "io.ktor:ktor-client-ios:$ktor_version"
                implementation "io.ktor:ktor-client-logging-native:$ktor_version"
                implementation "com.squareup.sqldelight:ios-driver:$sqldelight_version"
            }

        }
    }

    }}
I will be very grateful for any ideas
g

gildor

09/11/2019, 8:30 AM
#squarelibraries
5 Views