Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import java.nio.file.Files
plugins {
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.skie) apply false
alias(libs.plugins.kotlin.jvm) apply false
Expand All @@ -20,6 +20,7 @@ plugins {
alias(libs.plugins.kotlinter) apply false
alias(libs.plugins.keeper) apply false
alias(libs.plugins.kotlin.atomicfu) apply false
alias(libs.plugins.cocoapods) apply false
id("org.jetbrains.dokka") version libs.versions.dokkaBase
id("dokka-convention")
}
Expand Down
9 changes: 7 additions & 2 deletions compose/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import com.powersync.plugins.utils.powersyncTargets

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.android.library)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlinter)
Expand All @@ -12,7 +12,12 @@ plugins {
}

kotlin {
powersyncTargets(includeTargetsWithoutComposeSupport = false)
powersyncTargets(
includeTargetsWithoutComposeSupport = false,
// Recent versions of Compose Multiplatform generate bytecode with Java 11, which we have
// to adopt as well
legacyJavaSupport = false,
)

explicitApi()

Expand Down
2 changes: 1 addition & 1 deletion connectors/supabase/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.android.library)
alias(libs.plugins.kotlinter)
id("com.powersync.plugins.sonatype")
id("dokka-convention")
Expand Down
2 changes: 1 addition & 1 deletion core-tests-android/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import com.slack.keeper.optInToKeeper

plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.keeper)
}
Expand Down
2 changes: 1 addition & 1 deletion core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.konan.target.Family
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.android.library)
alias(libs.plugins.mavenPublishPlugin)
alias(libs.plugins.downloadPlugin)
alias(libs.plugins.kotlinter)
Expand Down
6 changes: 3 additions & 3 deletions demos/android-supabase-todolist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ all items have been received.
## Configure project in Android Studio

1. Clone this repo: ```git clone https://github.com/powersync-ja/powersync-kotlin.git```
2. Open `powersync-kotlin/demos/android-supabase-todolist` in Android Studio.
2. Open `powersync-kotlin/` in Android Studio.
3. Sync the project with Gradle (this should happen automatically, or choose File > Sync project with Gradle Files).
4. Insert your Supabase project URL, Supabase Anon Key, and PowerSync instance URL into the `local.properties` file:
4. Insert your Supabase project URL, Supabase Anon Key, and PowerSync instance URL into the `demos/android-supabase-todolist/local.properties` file:

```bash
# local.properties
Expand Down Expand Up @@ -86,4 +86,4 @@ dependencies {
implementation("com.powersync:connector-supabase:$powersyncVersion")
...
}
```
```
110 changes: 0 additions & 110 deletions demos/android-supabase-todolist/app/build.gradle.kts

This file was deleted.

141 changes: 136 additions & 5 deletions demos/android-supabase-todolist/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,137 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.util.Properties

plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
alias(libs.plugins.compose.compiler) apply false
}
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.sqldelight)
alias(libs.plugins.compose.compiler)
}

val localProperties = Properties()
val localPropertiesFile = project.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.inputStream().use { localProperties.load(it) }
}

fun getLocalProperty(
key: String,
defaultValue: String,
): String = localProperties.getProperty(key, defaultValue)

android {
namespace = "com.powersync.androidexample"
compileSdk = 35

buildFeatures {
buildConfig = true
}

defaultConfig {
applicationId = "com.powersync.androidexample"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}

buildConfigField("String", "SUPABASE_URL", "\"${getLocalProperty("SUPABASE_URL", "")}\"")
buildConfigField(
"String",
"SUPABASE_ANON_KEY",
"\"${getLocalProperty("SUPABASE_ANON_KEY", "")}\"",
)
buildConfigField(
"String",
"SUPABASE_STORAGE_BUCKET",
"\"${getLocalProperty("SUPABASE_STORAGE_BUCKET", "null")}\"",
)
buildConfigField("String", "POWERSYNC_URL", "\"${getLocalProperty("POWERSYNC_URL", "")}\"")
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
}
}

val useReleasedVersions = getLocalProperty("USE_RELEASED_POWERSYNC_VERSIONS", "false") == "true"
if (useReleasedVersions) {
configurations.all {
// https://docs.gradle.org/current/userguide/resolution_rules.html#sec:conditional-dependency-substitution
resolutionStrategy.dependencySubstitution.all {
requested.let {
if (it is ProjectComponentSelector) {
val projectPath = it.projectPath
// Translate a dependency of e.g. :core into com.powersync:core:latest.release,
// taking into account that the Supabase connector uses a custom name.
val moduleName = when (projectPath) {
":connectors:supabase" -> "connector-supabase"
else -> it.projectPath.substring(1).replace(':', '-')
}

useTarget("com.powersync:${moduleName}:latest.release")
}
}
}
}
}

dependencies {
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.core)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.supabase.client)
testImplementation(libs.test.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
// When adopting the PowerSync dependencies into your project, use the latest version available at
// https://central.sonatype.com/artifact/com.powersync/core
implementation(projects.core) // "com.powersync:core:latest.release"
implementation(projects.connectors.supabase) // "com.powersync:connector-supabase:latest.release"
implementation(projects.compose) // "com.powersync:compose:latest.release"
implementation(libs.uuid)
implementation(libs.kermit)
implementation(libs.androidx.material.icons.extended)
implementation(libs.androidx.activity.ktx)
}
23 changes: 0 additions & 23 deletions demos/android-supabase-todolist/gradle.properties

This file was deleted.

Loading
Loading