Ответ
- SharedPreferences – для небольших данных (настройки, флаги). Пример:
val prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE)
prefs.edit().putString("key", "value").apply()
- Room – SQLite-обёртка для структурированных данных. Пример:
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
-
Файлы – для бинарных данных или кастомных форматов (JSON, XML). Используйте
FileOutputStream/FileInputStream. -
DataStore – современная замена SharedPreferences с поддержкой Kotlin Coroutines/Flow.
-
Firebase/Backend – облачное хранение для синхронизации между устройствами.
-
ContentProviders – для обмена данными между приложениями.
Для критичных данных (пароли, токены) используйте EncryptedSharedPreferences или Android Keystore.