Skip to content
This repository was archived by the owner on Aug 3, 2025. It is now read-only.

v2.0.0

Choose a tag to compare

@bartwell bartwell released this 14 Mar 20:00

What's New in Version 2.0.0 / Migration Guide

Version 2.0.0 introduces significant updates and improvements over version 1.x. Here’s what you need to know when migrating:

  1. Dual Database Support

    • Before (v1.x): Only SQLDelight databases were supported.
    • Now (v2.0.0): The library supports both SQLDelight and Room Multiplatform databases.
      Migration:
    • For SQLDelight, replace the old environment providers with SqlDelightEnvironmentProvider.
    • For Room, initialize using RoomEnvironmentProvider.
  2. Updated Initialization API
    The API has been streamlined and unified across platforms:

    • Android:
      Old (v1.x):
      DelightSqlViewer.init(
          object : AndroidEnvironmentProvider {
              override fun getSqlDriver() = sqlDriver
              override fun getContext() = this@MainActivity
          }
      )
      New (v2.0.0):
      // For SQLDelight:
      DelightSqlViewer.init(object : SqlDelightEnvironmentProvider() {
          override fun getDriver() = sqlDelightDriver
          override fun getContext() = this@MainActivity
      })
      
      // For Room:
      DelightSqlViewer.init(object : RoomEnvironmentProvider() {
          override fun getDriver() = roomDatabase
          override fun getContext() = this@MainActivity
      })
    • iOS:
      Old (v1.x):
      let provider = IosEnvironmentProvider(sqlDriver: sqlDriver)
      DelightSqlViewer.shared.doInit(provider: provider)
      New (v2.0.0):
      // For SQLDelight:
      let provider = SqlDelightEnvironmentProvider(driver: sqlDriver)
      DelightSqlViewer.shared.doInit(provider: provider, isShortcutEnabled: true)
      
      // For Room:
      let provider = RoomEnvironmentProvider(driver: roomDatabase)
      DelightSqlViewer.shared.doInit(provider: provider, isShortcutEnabled: true)
    • Desktop:
      Old (v1.x):
      DelightSqlViewer.init(
          object : DesktopEnvironmentProvider {
              override fun getSqlDriver() = sqlDriver
          }
      )
      New (v2.0.0):
      // For SQLDelight:
      DelightSqlViewer.init(object : SqlDelightEnvironmentProvider() {
          override fun getDriver() = sqlDelightDriver
      })
      
      // For Room:
      DelightSqlViewer.init(object : RoomEnvironmentProvider() {
          override fun getDriver() = roomDatabase
      })
  3. Dependency Structure Changes

    • Debug Builds:
      You now need to include multiple modules:
      • runtime
      • core
      • Choose either sqldelight-adapter or room-adapter depending on your database.
    • Release Builds:
      Only the stub module is required, which helps reduce the app size.
      Migration:
      Update your Gradle configurations to conditionally include the full implementation for debug builds and the stub for release builds.