Kiedy chcemy przekazać obiekt do innej activity, musi on być odpowiedni. Przekazywać można jedynie typy prymitywne lub obiekty, których klasa ma zaimplementowany Parcelable. W Javie z prymitywami nie było problemu. Niestety implementacja Parcelable wymagała sporej ilości kodu (boilerplate code). W kotlinie możemy zrobić to o wiele łatwiej:
Najpierw w build.gradle dodajemy:
androidExtensions {
experimental = true
}
Następnie w klasie której obiekty chcemy przekazywać między aktywnościami:
@Parcelize //dodajemy andnotację
data class PhoneModel(
val battery: String,
val developer: String,
val displaySize: Double,
val modelName: String,
val processor: String
) : Parcelable // oraz potrzebny interfejs
Kompilator kotlina automatycznie wygeneruje za nas implementacje metod writeToParcel() i describeContents().