从 Room 迁移到 Kotlin Multiplatform
将现有 Android 代码库中的 Room 用例迁移到通用的共享 KMP 模块的难度可能差别很大,具体取决于所使用的 Room API 或 代码库已经使用协程了。
依赖配置 (Build.gradle.kts)
在共享模块的 commonMain 中添加 Room 依赖,并配置 KSP:
kotlin
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.google.ksp)
alias(libs.plugins.androidx.room)
}
kotlin {
sourceSets {
commonMain.dependencies {
implementation(libs.androidx.room.runtime)
implementation(libs.sqlite.bundled) // KMP 必须使用打包好的 SQLite
}
}
}
dependencies {
// 为所有目标平台生成代码
ksp(libs.androidx.room.compiler)
}
room {
schemaDirectory("$projectDir/schemas")
}