23 November 2020
Posted by David Winer, Product Manager
Update: The plugin is now scheduled to be removed in Kotlin 1.8 at the end of 2022. For more details, read the new blog.
The Android Kotlin Extensions Gradle plugin (not to be confused with Android KTX) was released in 2017 and brought two new conveniences to Android development in Kotlin:
findViewById
with kotlinx.android.synthetic
bindings.
@Parcelize
annotation.
Since then, we have released View Binding for Android, an officially supported library that has deep integration with the Android build toolchain and provides similar functionality as Kotlin synthetics. While we continue to recommend Parcelize, a number of drawbacks have appeared with using Kotlin synthetics:
JetBrains originally developed the Android Kotlin Extensions plugin, and together we have discussed the pros and cons of continuing to maintain synthetics: we strive to ensure long term support for APIs where we can but want to guide developers towards best practices that make for healthy codebases and, ultimately, happy users.
Over the course of the next year, our teams will be jointly deprecating synthetics in favor of continuing to support our recommended option, View Binding. Here’s what that means:
kotlinx.parcelize
, however, and In your module-level Gradle file, you should start using the standalone kotlin-parcelize
plugin instead of android-kotlin-extensions
. You’ll be able to find documentation for Parcelize on the Android developer documentation site.
The deprecation period starts with Kotlin 1.4.20, released today. android-kotlin-extensions
will be removed in a future Kotlin release during or after September 2021. Long term, we will continue to maintain the kotlin-parcelize
plugin, and you can continue to file issues on Parcelize in the Android Studio issue tracker.