An open API service indexing awesome lists of open source software.

https://github.com/leoando/roomjavasample


https://github.com/leoando/roomjavasample

android-java android-livedata android-room

Last synced: about 1 year ago
JSON representation

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
スクリーンショット 2023-07-13 23 53 34

### android roomの自動生成ファイル(java)
スクリーンショット 2023-07-13 23 48 13
スクリーンショット 2023-07-13 23 48 04

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

スクリーンショット 2023-07-14 23 02 49

# capture

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

https://en.wikipedia.org/wiki/Singleton_pattern