Oddbean new post about | logout
 @87c34046 All the mentioned libraries have a data corruption problem that DataStore is solving though. 
 @ccfb7e45 Datastore had data corruption problems at Google when it was internal, they didn't take the time to figure out why / how to prevent that afaik, the same issues are in the oss version.

Never had corruption issues with shared prefs or SQLite (but Tape yes) 
 @87c34046 DataStore significantly fixed several SharedPreferences corruption issues for us at Google (but yes, we deployed internal version before it became AndroidX). It was especially important for us because it could do multi-process access safely (which is where most complexity comes from IIRC).

I agree that SQLite is also fine when it comes to integrity, but it's hardly any less complex or comparable. 
 @87c34046 Having said that... I'm honestly not quite sure if DataStore makes sense for most apps in the wild, it doesn't really add all that much over SharedPrefs for applications that store small amounts of data. 
 @ccfb7e45 I wish SharedPrefs didn't block the main thread to flush on component lifecycle, and it's a bit wasteful to store as XML especially if you have a single value. Other than that, it's pretty robust & simple (though people forget to eagerly call Ctx.getSharedPreferences to trigger async loading of the file)