背景
データ永続化するニーズが出てきたので、ローカルDBにデータを保存して、サーバーと常に同期するようにした
技術背景
- Kotlin: 1.6.20
- KSP: 1.6.20-1.0.5
- Android Studio: BumbleBee
Roomとは
Room 永続ライブラリは SQLite 全体に抽象化レイヤを提供することで、データベースへのより安定したアクセスを可能にし、SQLite を最大限に活用できるようにします。
Room | Android デベロッパー | Android Developers
Setup Room
-
kaptは非推奨になったため、kspを使いました。
-
build.gradle
buildscript {
ext {
// sdk and tools
compileSdkVersion = 31
minSdkVersion = 25
targetSdkVersion = 31
// app dependencies
kotlinVersion = '1.6.20'
roomVersion = '2.4.2'
}
- settings.gradle
pluginManagement {
repositories {
gradlePluginPortal()
google()
}
plugins {
id("com.google.devtools.ksp") version "1.6.20-1.0.5"
}
}
kspのバージョンはこちらを参照しました:Maven Repository: com.google.devtools.ksp
settings.gradleにpluginManagement
を書いた理由はこちら:gradle pluginManagement {} ブロックとは
- app/build.gradle
plugins {
id 'com.google.devtools.ksp'
}
implementation("androidx.room:room-runtime:$rootProject.roomVersion")
annotationProcessor("androidx.room:room-compiler:$rootProject.roomVersion")
ksp("androidx.room:room-compiler:$rootProject.roomVersion")
テーブル作成
To be continued...
エラー
Plugin [id: 'com.google.devtools.ksp'] was not found in any of the following sources:
↑のsettings.gradleにpluginManagement
を設定すれば解決するはずです。