Chronosight/shared/build.gradle.kts
grtsinry43 8acd72bd9e
feat: Introduce Network Module and Basic Network Communication
- 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.
2025-04-23 09:26:24 +08:00

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()
}
}