Для чего добавили Parcelize

«Для чего добавили Parcelize» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

@Parcelize — это аннотация Kotlin, которая автоматически генерирует код для Parcelable, упрощая сериализацию объектов.

Преимущества:

  • Избавляет от ручного написания Parcelable (меньше boilerplate-кода).
  • Работает с data class и обычными классами.
  • Поддерживает вложенные объекты (если они тоже Parcelable).

Пример:

@Parcelize  
data class User(val name: String, val age: Int) : Parcelable  

// Использование в Intent  
val intent = Intent(this, DetailActivity::class.java).apply {  
    putExtra("user", user)  
}  

Ограничения:

  • Не поддерживает @Transient поля (используйте @IgnoredOnParcel).
  • Для сложных случаев (например, кастомная логика сериализации) придется писать Parcelable вручную.