DATE:
AUTHOR:
PowerSync Product Team
Kotlin Multiplatform SDK

PowerSync Kotlin Multiplatform SDK: v1.0.0-BETA4

DATE:
AUTHOR: PowerSync Product Team

We are excited to announce the release of version 1.0.0-BETA4 of the PowerSync Kotlin Multiplatform client SDK This SDK is now considered suitable for production use, if you've tested your use cases.

  • Installation instructions are in the project's README.

  • The full SDK reference with a getting started guide, implementation details, code snippets is available here.

See the full changelog below.

Have any questions or feedback? Chat with us and the PowerSync community on Discord.

Changelog

v1.0.0-BETA4

  • [FIXED] hasSynced was reset when the update 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 the build.gradle.kts file of the persistence 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.

Powered by LaunchNotes