warmUp
Forces this store's disk read and PackageManager lookup to happen now, on the calling thread, so the first real read does not pay for them.
Blocking — call it from a background thread, e.g. from Application.onCreate():
applicationScope.launch(Dispatchers.IO) { store.warmUp() }Content copied to clipboard
Deliberately blocking and dispatcher-free rather than taking a CoroutineScope: that would put kotlinx.coroutines types into this module's public ABI, and coroutines is an implementation dependency here. The caller already knows which scope and dispatcher it wants; this only needs to be called from the right one.
Optional. Skipping it is correct — the cost simply lands on whichever thread first touches the store, which for an app with a tight frame budget (camera preview, games) may be a frame that cannot afford it.