class DataStoreVM(
private val dataStore: DataStore
) : ViewModel() {
private val homeKey = stringPreferencesKey("home")
val homeDetails = dataStore.data
.map { prefs ->
prefs[homeKey]?.let { Json.decodeFromString(it) }
}
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), null)
}
< /code>
В пользовательском интерфейсе я собираю его, как это < /p>
val home by dataStoreVM.homeDetails.collectAsStateWithLifecycle()
Log.d("home", home) }
При запуске приложения я вижу:
D home: null
D home: HomeDetails(name= XYZ)
Для выдачи фактического значения homeDetails требуется около 1,5 секунд.
Я использую:
datastore-preferences:1.1.7
androidx.datastore:datastore
androidx.datastore:datastore-preferences
Вопросы:
- Это нормальная начальная задержка для хранилища данных в проекте KMP?
- Как лучше всего ускорить чтение в KMP?
kotlin = "2.2.20"
datastore = "1.1.7"
composeMultiplatform = "1.9.0"
Подробнее здесь: https://stackoverflow.com/questions/797 ... mp-project
Мобильная версия