Chronosight/shared/build.gradle.kts
grtsinry43 9550889bdf
feat: Introduce Network Functionality and Screen Time Implementation
- Implement `NetworkModule` for HTTP client management with JSON serialization.
- Add `kotlinx-serialization-json` and `ktor-client` dependencies.
- Update `Greeting` class to perform network requests to fetch and display time data.
- Add `NetworkResponse` and `TimeResponse` data classes for handling the remote API response.
- Introduce `ScreenTime` interface for platform-specific screen time data.
- Implement `ScreenTime` for Linux and Android, with basic or placeholder logic.
- Add `INTERNET` and `ACCESS_NETWORK_STATE` permissions to Android's `AndroidManifest.xml`.
- Add `ScreenTime.native.kt`, `ScreenTime.jvm.kt` and `ScreenTime.android.kt` to separate platform-specific code.
- Implement `kotlin("plugin.serialization")` plugin in shared module.
- Update dependencies.
- Add `ignoreUnknownKeys` and `coerceInputValues` for JSON serialization.
- Update `App` to display time data from remote API.
2025-04-23 10:24:20 +08:00

60 lines
1.6 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("plugin.serialization") version libs.versions.kotlin.get()
}
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()
}
}