You are discouraged to use Java serialization on the Android platform for performance reasons. Instead, Android comes with its own serialization tool: Parcelable. A Parcelable class requires you to implement the Parcelable interface and also to fulfill a certain contract as shown below:
A Parcelable class forces you to implement a lot of boilerplate code, but offers great performance as it does not rely on runtime reflection like the default Java serialization framework. When it comes to Scala on Android there emerges another problem: the Parcelable contract requires a static class field. At first glance this seems to be an issue in Scala as there is no support for static members.
Luckily, the Scala compiler checks for Android’s Parcelable interface and treats it in a special way to support Android development. At the end of the day there is just another contract to implement that relies on the class’ companion to overcome the lack of statics. Below is a valid Scala implementation of the previous example.