Что такое Parcelable?

Посмотреть в Telegram: @AndroidSobes/109
Parcelable – это интерфейс, который совместно с классом Parcel реализует механизм сериализации в Android.

Если класс реализует интерфейс Parcelable, поля класса сериализуются в методе writeToParcel().
Также parcelable класс обязан иметь статическое ненулевое поле, названное CREATOR типа Creator<T>.

Интерфейс Creator<T> имеет два метода createFromParcel(parcel: Parcel): T и newArray(size: Int): Array<T>. Эти методы обратные writeToParcel() и используются для чтения данных из Parcel и создания объекта.

Объект Parcelable записывается в контейнер Parcel, который имеет метод marshall(): Array<Byte> для представления объекта в виде массива байтов.

Parcel предназначен для передачи данных при межпроцессорной коммуникации.
При изменении структуры объекта или реализации метода writeToParcel() байтовое представление, которое возвращается методом marshall(), будет изменено. Поэтому строго не рекомендуется записывать его в персистентное хранилище.