Какие знаешь способы хранения данных

«Какие знаешь способы хранения данных» — вопрос из категории Базы данных, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  • 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.