Kotlin Android Extensions 的未来计划

3,240 阅读2分钟

作者 / 产品经理 David Winer

Android Kotlin Extensions Gradle 插件 (请勿与 Android KTX 混淆) 发布于 2017 年,为使用 Kotlin 进行 Android 开发带来了两项新的便利功能:

  • Synthetic 视图 : 您可以将调用 findViewById 替换为使用 kotlinx.android.synthetic 进行 UI 交互。
  • @Parcelize 注解: 帮助您移除样板代码并通过 @Parcelize 注解轻松创建 Parcelable

我们随后发布了 适用于 Android 的视图绑定 组件,它是一个与 Android 构建工具链深度集成并提供与 Kotlin synthetic 类似功能的官方支持库。我们虽然仍推荐使用 Parcelize,但 Kotlin synthetic 却存在一些弊端:

  • 污染全局命名空间
  • 不能暴露可空性信息
  • 仅支持 Kotlin 代码

Android Kotlin Extensions 插件最初由 JetBrains 开发,我们也共同讨论了继续保留 synthetic 的利弊: 我们尽力确保在可行范围内对 API 的长期支持,但我们也希望为开发者提供指导,帮助开发者维护健康的代码库并最终赢得用户的满意。

在接下来的一年里,我们的团队将共同弃用 synthetics,并继续支持我们建议的选项——"视图绑定 (View Binding)"。这意味着:

  • 如果您正在使用 Parcelize,则可以继续使用相同的注解和 API。但是,注解包将更改为 kotlinx.parcelize,并且在模块级 Gradle 文件中,您需要开始使用独立的 kotlin-parcelize 插件而非 android-kotlin-extensions。您可以在 Android 开发者官方网站 上找到有关 Parcelize 的文档。
  • 如果您使用 Android Kotlin synthetics,建议尽快迁移到 "视图绑定 (View Binding)"。请参阅我们的 迁移指南 以了解更多详细信息。

弃用期随着 Kotlin 1.4.20 的发布正式开始。android-kotlin-extensions 将继续保留至少一年时间,但在 2021 年 9 月或之后的 Kotlin 版本中将被移除。长期来看,我们将继续保留 kotlin-parcelize 插件,您也可以继续在 Android Studio 问题追踪器 中提交有关 Parcelize 的问题。