To my knowledge, making an object Parcelable allows for it to be converted into a compact binary format, making it ideal for IPC. My question is why this binary format is not recommended for persistence. The argument against it in the docs is that the binary format could change and cause problems, which makes sense obviously, but isn't that true for other things as well? For example, with serialization you can still break the object by changing it too much (I believe), and for databases you need to manually handle migrations.
Theoretically, if a user knows an object will never change, would persisting the Parcelable binary format be fine to do? In many cases this would be very helpful and fast compared to existing solutions such as using GSON to persist an object String or using serialization itself.
With that said, is there something I'm missing in regards to this? Is there a reason all of the Parcel internals are hidden and nothing like:
public byte[] Parcel.toByteFormat(Parcelable object)
public Parcelable Parcel.fromByteFormat(byte[] parcel, Class objectClass) throws InvalidParcelFormatException
exists?