Android Data Persistence: SharedPreferences vs Room vs DataStore
본문
Android data persistence options serve different use cases. SharedPreferences stores key-value pairs for simple settings. It's synchronous, blocking the calling thread. Performance degrades with large data sets. Room provides SQLite abstraction with compile-time query verification. complex data with relationships, indexes, and migrations. Entity classes define database tables. DAO interfaces define data access operations. Flow and LiveData return reactive query results. DataStore replaces SharedPreferences with two implementations. Preferences DataStore stores key-value pairs with asynchronous API. Proto DataStore stores typed objects with Protocol Buffers. DataStore uses Flow for reactive data observation. DataStore handles data corruption automatically. Room is for structured data with query needs. DataStore is for simple key-value or typed preferences. SharedPreferences is legacy and not recommended for new apps. Thread safety differs: SharedPreferences is blocking, others are not. Migration path from SharedPreferences to DataStore is documented. For complex app data, Room is the standard. For simple preferences, DataStore is the modern choice.
댓글목록0
댓글 포인트 안내