Skip to content

Commit cc9018a

Browse files
committed
Migrate supabase todolist example to subproject
1 parent 880b0bf commit cc9018a

File tree

79 files changed

+169
-524
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+169
-524
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import java.nio.file.Files
77
plugins {
88
alias(libs.plugins.jetbrainsCompose) apply false
99
alias(libs.plugins.compose.compiler) apply false
10-
alias(libs.plugins.androidApplication) apply false
11-
alias(libs.plugins.androidLibrary) apply false
10+
alias(libs.plugins.android.application) apply false
11+
alias(libs.plugins.android.library) apply false
1212
alias(libs.plugins.kotlinMultiplatform) apply false
1313
alias(libs.plugins.skie) apply false
1414
alias(libs.plugins.kotlin.jvm) apply false

compose/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import com.powersync.plugins.utils.powersyncTargets
33

44
plugins {
55
alias(libs.plugins.kotlinMultiplatform)
6-
alias(libs.plugins.androidLibrary)
6+
alias(libs.plugins.android.library)
77
alias(libs.plugins.jetbrainsCompose)
88
alias(libs.plugins.compose.compiler)
99
alias(libs.plugins.kotlinter)

connectors/supabase/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
55
plugins {
66
alias(libs.plugins.kotlinMultiplatform)
77
alias(libs.plugins.kotlinSerialization)
8-
alias(libs.plugins.androidLibrary)
8+
alias(libs.plugins.android.library)
99
alias(libs.plugins.kotlinter)
1010
id("com.powersync.plugins.sonatype")
1111
id("dokka-convention")

core-tests-android/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import com.slack.keeper.optInToKeeper
22

33
plugins {
4-
alias(libs.plugins.androidApplication)
4+
alias(libs.plugins.android.application)
55
alias(libs.plugins.kotlin.android)
66
alias(libs.plugins.keeper)
77
}

core/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.konan.target.Family
1414
plugins {
1515
alias(libs.plugins.kotlinMultiplatform)
1616
alias(libs.plugins.kotlinSerialization)
17-
alias(libs.plugins.androidLibrary)
17+
alias(libs.plugins.android.library)
1818
alias(libs.plugins.mavenPublishPlugin)
1919
alias(libs.plugins.downloadPlugin)
2020
alias(libs.plugins.kotlinter)
File renamed without changes.

demos/android-supabase-todolist/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ all items have been received.
3737
## Configure project in Android Studio
3838
3939
1. Clone this repo: ```git clone https://github.com/powersync-ja/powersync-kotlin.git```
40-
2. Open `powersync-kotlin/demos/android-supabase-todolist` in Android Studio.
40+
2. Open `powersync-kotlin/` in Android Studio.
4141
3. Sync the project with Gradle (this should happen automatically, or choose File > Sync project with Gradle Files).
42-
4. Insert your Supabase project URL, Supabase Anon Key, and PowerSync instance URL into the `local.properties` file:
42+
4. Insert your Supabase project URL, Supabase Anon Key, and PowerSync instance URL into the `demos/android-supabase-todolist/local.properties` file:
4343

4444
```bash
4545
# local.properties
@@ -86,4 +86,4 @@ dependencies {
8686
implementation("com.powersync:connector-supabase:$powersyncVersion")
8787
...
8888
}
89-
```
89+
```

demos/android-supabase-todolist/app/build.gradle.kts

Lines changed: 0 additions & 110 deletions
This file was deleted.
Lines changed: 131 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,132 @@
1-
// Top-level build file where you can add configuration options common to all sub-projects/modules.
1+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
import java.util.Properties
3+
24
plugins {
3-
alias(libs.plugins.android.application) apply false
4-
alias(libs.plugins.jetbrains.kotlin.android) apply false
5-
alias(libs.plugins.compose.compiler) apply false
6-
}
5+
alias(libs.plugins.android.application)
6+
alias(libs.plugins.kotlin.android)
7+
alias(libs.plugins.sqldelight)
8+
alias(libs.plugins.compose.compiler)
9+
}
10+
11+
val localProperties = Properties()
12+
val localPropertiesFile = project.file("local.properties")
13+
if (localPropertiesFile.exists()) {
14+
localPropertiesFile.inputStream().use { localProperties.load(it) }
15+
}
16+
17+
fun getLocalProperty(
18+
key: String,
19+
defaultValue: String,
20+
): String = localProperties.getProperty(key, defaultValue)
21+
22+
android {
23+
namespace = "com.powersync.androidexample"
24+
compileSdk = 35
25+
26+
buildFeatures {
27+
buildConfig = true
28+
}
29+
30+
defaultConfig {
31+
applicationId = "com.powersync.androidexample"
32+
minSdk = 24
33+
targetSdk = 35
34+
versionCode = 1
35+
versionName = "1.0"
36+
37+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
38+
vectorDrawables {
39+
useSupportLibrary = true
40+
}
41+
42+
buildConfigField("String", "SUPABASE_URL", "\"${getLocalProperty("SUPABASE_URL", "")}\"")
43+
buildConfigField(
44+
"String",
45+
"SUPABASE_ANON_KEY",
46+
"\"${getLocalProperty("SUPABASE_ANON_KEY", "")}\"",
47+
)
48+
buildConfigField(
49+
"String",
50+
"SUPABASE_STORAGE_BUCKET",
51+
"\"${getLocalProperty("SUPABASE_STORAGE_BUCKET", "null")}\"",
52+
)
53+
buildConfigField("String", "POWERSYNC_URL", "\"${getLocalProperty("POWERSYNC_URL", "")}\"")
54+
}
55+
56+
buildTypes {
57+
release {
58+
isMinifyEnabled = false
59+
proguardFiles(
60+
getDefaultProguardFile("proguard-android-optimize.txt"),
61+
"proguard-rules.pro",
62+
)
63+
}
64+
}
65+
compileOptions {
66+
sourceCompatibility = JavaVersion.VERSION_1_8
67+
targetCompatibility = JavaVersion.VERSION_1_8
68+
}
69+
buildFeatures {
70+
compose = true
71+
}
72+
composeOptions {
73+
kotlinCompilerExtensionVersion = "1.5.1"
74+
}
75+
packaging {
76+
resources {
77+
excludes += "/META-INF/{AL2.0,LGPL2.1}"
78+
}
79+
}
80+
}
81+
82+
kotlin {
83+
compilerOptions {
84+
jvmTarget.set(JvmTarget.JVM_1_8)
85+
}
86+
}
87+
88+
val useReleasedVersions = getLocalProperty("USE_RELEASED_POWERSYNC_VERSIONS", "false") == "true"
89+
if (!useReleasedVersions) {
90+
configurations.all {
91+
// https://docs.gradle.org/current/userguide/resolution_rules.html#sec:conditional-dependency-substitution
92+
resolutionStrategy.dependencySubstitution.all {
93+
requested.let {
94+
if (it is ModuleComponentSelector && it.group == "com.powersync") {
95+
val targetProject = findProject(":${it.module}")
96+
if (targetProject != null) {
97+
useTarget(targetProject)
98+
}
99+
}
100+
}
101+
}
102+
}
103+
}
104+
105+
dependencies {
106+
implementation(libs.androidx.core.splashscreen)
107+
implementation(libs.androidx.core)
108+
implementation(libs.androidx.lifecycle.runtime.ktx)
109+
implementation(libs.androidx.activity.compose)
110+
implementation(platform(libs.androidx.compose.bom))
111+
implementation(libs.androidx.ui)
112+
implementation(libs.androidx.ui.graphics)
113+
implementation(libs.androidx.ui.tooling.preview)
114+
implementation(libs.androidx.material3)
115+
implementation(libs.supabase.client)
116+
testImplementation(libs.test.junit)
117+
androidTestImplementation(libs.androidx.junit)
118+
androidTestImplementation(libs.androidx.espresso.core)
119+
androidTestImplementation(platform(libs.androidx.compose.bom))
120+
androidTestImplementation(libs.androidx.ui.test.junit4)
121+
debugImplementation(libs.androidx.ui.tooling)
122+
debugImplementation(libs.androidx.ui.test.manifest)
123+
// To use a fixed version, replace "latest.release" with the latest version available at
124+
// https://central.sonatype.com/artifact/com.powersync/core
125+
implementation("com.powersync:core:latest.release")
126+
implementation("com.powersync:connector-supabase:latest.release")
127+
implementation("com.powersync:compose:latest.release")
128+
implementation(libs.uuid)
129+
implementation(libs.kermit)
130+
implementation(libs.androidx.material.icons.extended)
131+
implementation(libs.androidx.activity.ktx)
132+
}

demos/android-supabase-todolist/gradle.properties

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)