Android/Room/Database
Android/Room
Roomにおける、
SQLite
のデータベース設定(接続等々)に該当する部分。
Android/Room/DAO
を生成する機能を持つ
抽象クラスにアノテーションを付ける
@Database
アノテーションの引数には利用する
Android/Room/Entity
全てを列挙する。
このdatabaseのインスタンスを
Singleton
にするために
Kotlin/companion object
を利用する
companion object内でデータベースの参照は
Kotlin/Volatileアノテーション
を付けておく
メモリにのみ参照が保持されるようになるので、値の同期を考える必要がなくなる
参考
https://appdev-room.com/android-companion-object
https://developer.android.com/codelabs/basic-android-kotlin-compose-persisting-data-room?hl=ja#6