#68 Jetpack ComposeでToDoアプリを作る - Room
今回はデータベースの準備をします。
Roomを追加する
と見出しをつけましたが、Roomの導入はJetpack ComposeアプリとViewシステムの従来のアプリで違いは全くありません。 よってViewシステムの時の記事に沿ってエンティティ・DAO・データベースを作るだけです。
KSPを使う
Viewシステムで作ってみた時はkaptを使っていましたが、高速で動作するKSP(Kotlin Symbol Processing)がリリースされたので使ってみることにします。
まず、プロジェクトのルートにあるbuild.gradleにpluginブロックを追加します。
buildscript { ... }
// このブロックを追加
plugins {
id 'com.google.devtools.ksp' version "1.5.31-1.0.0"
}
次に、app/build.gradleのpluginsにcom.google.devtools.ksp
を追加します。
plugins {
id 'com.android.application'
id 'kotlin-android'
// この行を追加
id 'com.google.devtools.ksp'
}
android { ... }
そしてdependenciesのところで、今までkapt
としていたところをksp
に変更します。
(追記)Room 2.3.0の時点ではksp対応はExperimentalで、どうも2.4.0-beta01あたりにしないと動かないみたいです。。。
まず、トップレベルのbuild.gradleでRoomのバージョンを更新します。
buildscript {
ext {
compose_version = '1.0.4'
// 2.4.0にする
room_version = '2.4.0-beta01'
}
...
}
そしてapp/build.gradleでroom-ktxを入れ忘れてたので追加します。
dependencies {
...
// room-ktxも追加する
implementation "androidx.room:room-ktx:$room_version"
implementation "androidx.room:room-runtime:$room_version"
ksp "androidx.room:room-compiler:$room_version"
}
あとはエンティティ・DAO・データベースを作ります。
ここまで作業したものはこちらにあります。