- DATE:
- AUTHOR:
- PowerSync Product Team
PowerSync Kotlin Multiplatform SDK: v1.0.0-BETA20
We are excited to announce the release of version 1.0.0-BETA20 of the PowerSync Kotlin Multiplatform client SDK
Visit the full SDK reference to get started, for implementation details, and code snippets.
See the full changelog below.
Have any questions or feedback? Chat with us and the PowerSync community on Discord.
Changelog
v1.0.0-BETA19 and v1.0.0-BETA20
[IMPROVED] Ability to use the column name to get the pertaining value when using the cursor instead of having to use the index number. The following functions now accept a column name parameter:
getBoolean
,getBooleanOptional
,getString
,getStringOptional
,getLong
,getLongOptional
,getDouble
,getDoubleOptional
.BREAKING CHANGE: This should not affect anyone, but we made
KotlinPowerSyncCredentials
,KotlinPowerSyncDatabase
andKotlinPowerSyncBackendConnector
private as these should never have been public.
v1.0.0-BETA18
BREAKING CHANGE: Move from async sqldelight calls to synchronous calls. This will only affect
readTransaction
andwriteTransaction
where the callback function is no longer asynchronous.
v1.0.0-BETA17
[FIXED] JVM builds on Windows.
v1.0.0-BETA16
[IMPROVED] Add
close
method to database methods.[IMPROVED] Throw when error is a
CancellationError
and remove invalidation for all errors instreamingSync
catch.
v1.0.0-BETA15
[FIXED] Updated
powersync-sqlite-core
to v0.3.8, which fixes a view migration issue (see details).[IMPROVED] Increase maximum amount of columns from 63 to 1999.
v1.0.0-BETA14
[ADDED] JVM compatibility.
[FIXED] Reverted the previous iOS database updates as they were introducing further issues.
v1.0.0-BETA13
[FIXED] Move iOS database driver to use IO dispatcher which should avoid race conditions and improve performance.
v1.0.0-BETA12
[FIXED] Use transaction context in
writeTransaction
inBucketStorageImpl
.
v1.0.0-BETA11
[FIXED] Update version to fix a deployment issue of the previous release.
v1.0.0-BETA10
[IMPROVED] Change Swift package name from
PowerSync
toPowerSyncKotlin.
v1.0.0-BETA9
[FIXED] Re-enable SKIE's
SuspendInterop
plugin.[FIXED] Move transaction functions out of
PowerSyncTransactionFactory
to avoid threading issues in the Swift SDK.
v1.0.0-BETA8
[FIXED] Disable SKIE's
SuspendInterop
plugin to fix overridingsuspend
functions in Swift.
v1.0.0-BETA7
[IMPROVED] Updates Supabase connector to use supabase-kt version 3.
[IMPROVED] Handle Postgres error codes in the Supabase connector.
v1.0.0-BETA6
[FIXED] Custom Write Checkpoint application logic.
v1.0.0-BETA5
[FIXED]
hasSynced
not updating afterdisconnectAndClear
.[FIXED] An error being thrown in iOS app launch.
v1.0.0-BETA4
[FIXED]
hasSynced
was reset when theupdate
function is run.
v1.0.0-BETA3
[ADDED]
waitForFirstSync
function - which resolves after the initial sync is completed. Usage example.[ADDED] Support for client parameters to further filter data via sync rules. Example:
val params = JsonParam.Map( mapOf( "name" to JsonParam.String("John Doe"), "age" to JsonParam.Number(30), "isStudent" to JsonParam.Boolean(false) ) ) connect( ... params = params )
[ADDED] Validation (e.g. checking for duplicate table names) when the schema is generated.
[IMPROVED] Updated
powersync-sqlite-core
to v0.3.0, which significantly improves the performance of incremental sync (see details).[IMPROVED] Added a warning if connector
uploadData
functions don't process CRUD items completely [original PR for more details].[IMPROVED] Upgraded to Kotlin 2.0.20. This fixes issues related to using Kotlin with XCode 16.
v1.0.0-BETA2
[FXIED] Added a
minSdk
version to thebuild.gradle.kts
file of thepersistence
module to resolve an error that was thrown.
v1.0.0-BETA1
Improved the API by changing from a Builder pattern to simply instantiating the database
PowerSyncDatabase
E.g.
val db = PowerSyncDatabase(factory, schema)
Moved the SQLDelight models to a separate module to reduce export size.
Replaced the default Logger with Kermit Logger which allows users to more easily use and/or change Logger settings.
Introduced a callback context in transactions (see details in this PR)
E.g.
db.writeTransaction{ ctx -> ctx.execute(...) }
Quality enhancements summarized here.
And more.