Есть ли еще способы хранить классы на носителе кроме Serialazible

«Есть ли еще способы хранить классы на носителе кроме Serialazible» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть несколько альтернатив Serializable для хранения объектов:

  1. Parcelable - более производительный аналог для Android, требует ручной реализации:
class User : Parcelable {
    override fun writeToParcel(dest: Parcel, flags: Int) {
        dest.writeString(name)
    }
    // + Creator и другие методы
}
  1. Gson/Jackson/Moshi - сериализация в JSON:
val json = Gson().toJson(user)
  1. Room - для хранения в SQLite с ORM

  2. SharedPreferences - для простых структур

  3. Protocol Buffers - бинарный формат от Google

  4. Kotlinx.serialization - современная альтернатива

Parcelable лучше для межпроцессного взаимодействия, JSON-решения - для сетевых операций и гибкости. Выбор зависит от конкретного кейса.