Kotlin 1.1.4 から Parcelable を手軽に実装できるようにする機能が追加された
KEEP/android-parcelable.md at master · Kotlin/KEEP
まだステータスは正式版ではないので gradle で
androidExtensions {
experimental = true
}
を有効化し、
@Parcelize
class MyParcelable(val data: Int): Parcelable
このように書いておくとコンパイル時に自動的に Parcelable 相当の実装を生成してくれる
data クラスにも使用出来るので json のパース結果などを Activity 間で受け渡すのが非常に簡単になる
これまでは grandstaish/paperparcel を使っていたが CREATOR
フィールドを用意する必要がないのでより手軽だ
※注意
CRETOR フィールドを用意する必要はないが、@Parcelize アノテーションを付与したクラスはIDE上で
this class implements parcelable but does not provide a CREATOR field
というエラー扱いになる(でもコンパイルは通る)
下記チケットが起票されているので、直に修正される…と思いたい
[AS3.0] Android extensions, Parcelable: editor shows warning about incomplete implementation on a class with Parcelize annotation : KT-19300