https://github.com/leoando/roomjavasample
https://github.com/leoando/roomjavasample
android-java android-livedata android-room
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/leoando/roomjavasample
- Owner: LeoAndo
- Created: 2023-07-10T10:44:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-14T15:16:52.000Z (over 2 years ago)
- Last Synced: 2025-01-09T12:37:38.756Z (about 1 year ago)
- Topics: android-java, android-livedata, android-room
- Language: Java
- Homepage: https://developer.android.com/training/data-storage/room
- Size: 217 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# overview
Java + LiveDataを使ったRoomの技術調査用アプリ
# スレッドセーフなsingleton instanceの扱いについて
[document](https://developer.android.com/training/data-storage/room?hl=ja#database)やroomの内部実装を見ると、RoomDatabaseやdaoをシングルトンで扱うことを推奨している。
https://github.com/LeoAndo/RoomJavaSample/blob/main/app/src/main/java/com/leoleo/roomjavasample/roomjavasample/data/DataModule.java
こちらの実装はroomの自動生成ファイル(java)やjetpack、kotlinの遅延初期化(lazy)の内部実装を参考にした。
### jetpackの内部コード datastore(kotlin)
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:datastore/datastore-rxjava3/src/main/java/androidx/datastore/rxjava3/RxDataStoreDelegate.kt?hl=ja

### android roomの自動生成ファイル(java)

### kotlinの遅延初期化(lazy)
https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/src/kotlin/util/LazyJVM.kt#L55:L87

# capture

# refs
https://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java
https://en.wikipedia.org/wiki/Singleton_pattern