# DataStore-sample DataStore-sample - Preferences DataStore [Working with Preferences DataStore Codelab](https://developer.android.com/codelabs/android-preferences-datastore#0). - Using [Jetpack Compose](https://developer.android.com/jetpack/compose) for UI. - Toggle dark mode / light mode. - StateFlow, Coroutines Flow. > DataStore is a new and improved data storage solution aimed at replacing SharedPreferences. Built on Kotlin coroutines and Flow, DataStore provides two different implementations: Proto DataStore, that lets you store typed objects (backed by protocol buffers) and Preferences DataStore, that stores key-value pairs. Data is stored asynchronously, consistently, and transactionally, overcoming some of the drawbacks of SharedPreferences.