- Implement `NetworkModule` for managing HTTP client with JSON content negotiation. - Add `kotlinx-serialization-json` and `ktor-client` dependencies for network requests and serialization. - Implement basic network communication in `Greeting` class to retrieve and display time data from a remote API. - Add `NetworkResponse` and `TimeResponse` data classes for handling the response from the remote API. - Refactor the `greet` method in `Greeting` class to integrate network request.
58 lines
1.5 KiB
Plaintext
58 lines
1.5 KiB
Plaintext
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlinMultiplatform)
|
|
alias(libs.plugins.androidLibrary)
|
|
}
|
|
|
|
kotlin {
|
|
androidTarget {
|
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
|
compilerOptions {
|
|
jvmTarget.set(JvmTarget.JVM_11)
|
|
}
|
|
}
|
|
|
|
listOf(
|
|
iosX64(),
|
|
iosArm64(),
|
|
iosSimulatorArm64()
|
|
).forEach { iosTarget ->
|
|
iosTarget.binaries.framework {
|
|
baseName = "Shared"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
jvm()
|
|
|
|
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)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
}
|
|
androidMain.dependencies {
|
|
implementation(libs.ktor.client.android)
|
|
}
|
|
iosMain.dependencies {
|
|
implementation(libs.ktor.client.ios)
|
|
}
|
|
}
|
|
}
|
|
|
|
android {
|
|
namespace = "com.grtsinry43.activityanalyzer.shared"
|
|
compileSdk = libs.versions.android.compileSdk.get().toInt()
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
defaultConfig {
|
|
minSdk = libs.versions.android.minSdk.get().toInt()
|
|
}
|
|
}
|