关于官方回应
发布者:David Winer,产品经理
Android Kotlin Extensions Gradle 插件(不要和 Android KTX混淆)于 2017 年发布,为 Kotlin 的 Android 开发带来了两个新的便利功能。
Synthetics:让你用kotlinx.android.synthetic绑定来替换findViewById的调用。
Parcelize:让你可以去除模板,通过@Parcelize注解轻松创建Parcelables。
此后,我们发布了Android的Viewbinding,这是一个官方支持的库,与Android构建工具链深度集成,并提供了与Kotlin synthetics类似的功能。虽然我们继续推荐Parcelize,但使用Kotlin synthetics出现了一些缺点:
1. 会污染全局命名空间
2. 不会暴露可空性信息
3. 只能在Kotlin代码中工作
JetBrains 最初开发了 Android Kotlin Extensions 插件,我们一起讨论了继续维护综合体的利弊:我们努力确保在可能的情况下长期支持 API,但希望引导开发人员采用最佳实践,使代码库健康发展,最终使用户满意。
在未来一年的时间里,我们的团队将联合废止综合体,转而继续支持我们推荐的选项--View Binding。这意味着什么呢?
如果你在使用Parcelize,你可以继续使用相同的注解和API。然而,注释包将改为kotlinx.parcelize,并且在你的模块级Gradle文件中,你应该开始使用独立的kotlin-parcelize插件,而不是android-kotlin-extensions。你可以在Android开发者文档网站上找到Parcelize的文档。如果你使用的是Android Kotlin synthetics,你应该迁移到View Binding。查看我们的迁移指南,了解更多细节。