From d223fb486b62d0f888a3bb9840d41a53cf188b1b Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 5 Oct 2025 13:38:05 -0400 Subject: [PATCH 01/15] Adding room dependencies. --- build.gradle.kts | 1 + gradle/libs.versions.toml | 7 ++++++- shared/build.gradle.kts | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index e84c295..b7a400c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,7 @@ plugins { alias(libs.plugins.kotlin.android).apply(false) alias(libs.plugins.kotlin.multiplatform).apply(false) alias(libs.plugins.kotlinter).apply(false) + alias(libs.plugins.room).apply(false) } apply(from = "buildscripts/githooks.gradle") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0c52c06..74cc13c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,6 +24,7 @@ leakCanary = "2.14" material = "1.13.0" material3Adaptive = "1.2.0-alpha06" minSdk = "23" +room = "2.8.1" sqldelight = "2.1.0" testParameterInjector = "1.19" @@ -33,6 +34,9 @@ androidx-activity-compose = { module = "androidx.activity:activity-compose", ver androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" } androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidxLifecycle" } androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +androidx-room-runtime-android = { module = "androidx.room:room-runtime-android", version.ref = "room" } androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidxTest" } apollo-runtime = { module = "com.apollographql.apollo:apollo-runtime", version.ref = "apollo" } @@ -75,4 +79,5 @@ kotlin-compose = { id = "org.jetbrains.compose", version.ref = "kmpCompose" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlinter = { id = "org.jmailen.kotlinter", version.ref = "kotlinter" } -parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } \ No newline at end of file +parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +room = { id = "androidx.room", version.ref = "room" } \ No newline at end of file diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 95839c8..489b5d4 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -12,6 +12,7 @@ plugins { alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlinx.serialization) + alias(libs.plugins.room) } kotlin { @@ -36,6 +37,10 @@ kotlin { jvm("desktop") sourceSets { + androidMain.dependencies { + implementation(libs.androidx.room.runtime.android) + } + commonMain.dependencies { implementation(compose.runtime) implementation(compose.foundation) @@ -46,6 +51,7 @@ kotlin { implementation(libs.androidx.datastore.preferences) implementation(libs.androidx.lifecycle.viewmodel) implementation(libs.androidx.lifecycle.runtime.compose) + implementation(libs.androidx.room.runtime) implementation(libs.apollo.runtime) implementation(libs.cash.sqldelight.coroutines) implementation(libs.cash.sqldelight.runtime) @@ -119,6 +125,19 @@ android { namespace = "template.shared" } +dependencies { + // KSP configuration for Room code generation + add("kspCommonMainMetadata", libs.androidx.room.compiler) + add("kspAndroid", libs.androidx.room.compiler) + add("kspIosX64", libs.androidx.room.compiler) + add("kspIosArm64", libs.androidx.room.compiler) + add("kspIosSimulatorArm64", libs.androidx.room.compiler) +} + +room { + schemaDirectory("$projectDir/schemas") +} + sqldelight { databases { create("AppDatabase") { From 5c5a08ee25aaccf4bf74249f972e0122dc324734 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 5 Oct 2025 13:41:56 -0400 Subject: [PATCH 02/15] Adding ksp dep to common. --- shared/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 489b5d4..f23aa14 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -9,6 +9,7 @@ plugins { alias(libs.plugins.apollo.graphql) alias(libs.plugins.cash.sqldelight) alias(libs.plugins.compose.compiler) + alias(libs.plugins.google.devtools.ksp) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlinx.serialization) From d21c1695036b0de2bfd535572ab64c116f8d6f4a Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 19:40:40 -0500 Subject: [PATCH 03/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index 9baa924..aa848df 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -97,6 +97,7 @@ def tasksToExclude = [ "generateResourceAccessors", "generateServiceApolloSources", "prepareComposeResourcesTask", + "processDebugManifest", ] project('shared').tasks.named { taskName -> From 0a9392b69ed848f2a874ed528e3af06d955661ae Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:14:34 -0500 Subject: [PATCH 04/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index aa848df..ec576d6 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -98,6 +98,7 @@ def tasksToExclude = [ "generateServiceApolloSources", "prepareComposeResourcesTask", "processDebugManifest", + "extractDeepLinksDebug", ] project('shared').tasks.named { taskName -> From 422ff604fb77e614310dae52e07b772422d3f382 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:15:26 -0500 Subject: [PATCH 05/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index ec576d6..e55a286 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -99,6 +99,7 @@ def tasksToExclude = [ "prepareComposeResourcesTask", "processDebugManifest", "extractDeepLinksDebug", + "processDebugAndroidTestManifes", ] project('shared').tasks.named { taskName -> From 2e870ff6584900d5afe6c73d37a090f4ca49480e Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:16:06 -0500 Subject: [PATCH 06/15] Ignoring another task. --- buildscripts/setup.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index e55a286..ff9b9e6 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -99,7 +99,8 @@ def tasksToExclude = [ "prepareComposeResourcesTask", "processDebugManifest", "extractDeepLinksDebug", - "processDebugAndroidTestManifes", + "processDebugAndroidTestManifest", + "generateDebugAndroidTestResources", ] project('shared').tasks.named { taskName -> From 589165657fedf53c48a6b450dbb2949d6bb75e25 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:16:48 -0500 Subject: [PATCH 07/15] Ignoring another task. --- buildscripts/setup.gradle | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index ff9b9e6..b1679d5 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -97,10 +97,9 @@ def tasksToExclude = [ "generateResourceAccessors", "generateServiceApolloSources", "prepareComposeResourcesTask", - "processDebugManifest", + "processDebug", "extractDeepLinksDebug", - "processDebugAndroidTestManifest", - "generateDebugAndroidTestResources", + "generateDebug", ] project('shared').tasks.named { taskName -> From e2ed38a492029cb9340849064eae30c40d997b4b Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:17:09 -0500 Subject: [PATCH 08/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index b1679d5..3c5cc99 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -100,6 +100,7 @@ def tasksToExclude = [ "processDebug", "extractDeepLinksDebug", "generateDebug", + "compileDebug", ] project('shared').tasks.named { taskName -> From cfe620539ba13b851c58553ecba5ea10f9805a63 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:17:36 -0500 Subject: [PATCH 09/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index 3c5cc99..956e52a 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -101,6 +101,7 @@ def tasksToExclude = [ "extractDeepLinksDebug", "generateDebug", "compileDebug", + "checkDebug", ] project('shared').tasks.named { taskName -> From a09004028bc8e630e56c0e740eba899a9e01b8ef Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:18:09 -0500 Subject: [PATCH 10/15] Ignoring another task. --- buildscripts/setup.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index 956e52a..ca0b352 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -102,6 +102,10 @@ def tasksToExclude = [ "generateDebug", "compileDebug", "checkDebug", + "processRelease", + "generateRelease", + "compileRelease", + "checkRelease", ] project('shared').tasks.named { taskName -> From 9d36cdebff035d3b882d4e3930a99572511fb7af Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:18:44 -0500 Subject: [PATCH 11/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index ca0b352..a7f3764 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -106,6 +106,7 @@ def tasksToExclude = [ "generateRelease", "compileRelease", "checkRelease", + "packageRelease", ] project('shared').tasks.named { taskName -> From fcde031d74ec8f96f4cf14ef30ec7c25f348ba3e Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:19:08 -0500 Subject: [PATCH 12/15] Ignoring another task. --- buildscripts/setup.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index a7f3764..a42173e 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -107,6 +107,7 @@ def tasksToExclude = [ "compileRelease", "checkRelease", "packageRelease", + "parseRelease", ] project('shared').tasks.named { taskName -> From 0b54398777a6ae8bb8a3a94904cd8207a6fbabf9 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:20:00 -0500 Subject: [PATCH 13/15] Ignoring another task. --- buildscripts/setup.gradle | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index a42173e..f79fe41 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -97,16 +97,18 @@ def tasksToExclude = [ "generateResourceAccessors", "generateServiceApolloSources", "prepareComposeResourcesTask", - "processDebug", "extractDeepLinksDebug", "generateDebug", - "compileDebug", - "checkDebug", - "processRelease", "generateRelease", + "compileDebug", "compileRelease", + "checkDebug", "checkRelease", + "processDebug", + "processRelease", + "packageDebug", "packageRelease", + "parseDebug", "parseRelease", ] From a23fa428f89c3221e4ed760dd175d218fc419472 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:20:23 -0500 Subject: [PATCH 14/15] Ignoring another task. --- buildscripts/setup.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index f79fe41..a321b20 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -110,6 +110,8 @@ def tasksToExclude = [ "packageRelease", "parseDebug", "parseRelease", + "mergeDebug", + "mergeRelease", ] project('shared').tasks.named { taskName -> From 46f62d1f50a76ae771824dc797dd4bd99a2ae125 Mon Sep 17 00:00:00 2001 From: Adam McNeilly Date: Sun, 28 Dec 2025 20:21:02 -0500 Subject: [PATCH 15/15] Ignoring another task. --- buildscripts/setup.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildscripts/setup.gradle b/buildscripts/setup.gradle index a321b20..2471a90 100644 --- a/buildscripts/setup.gradle +++ b/buildscripts/setup.gradle @@ -112,6 +112,8 @@ def tasksToExclude = [ "parseRelease", "mergeDebug", "mergeRelease", + "mapDebug", + "mapRelease", ] project('shared').tasks.named { taskName ->