Kotlin Android Extensions 的未来计划
作者 / 产品经理 David Winer
Android Kotlin Extensions Gradle 插件 (请勿与 Android KTX 混淆) 发布于 2017 年,为使用 Kotlin 进行 Android 开发带来了两项新的便利功能:
Synthetic 视图: 您可以将调用 findViewById 替换为使用 kotlinx.android.synthetic 进行 UI 交互。
@Parcelize 注解: 帮助您移除样板代码并通过 @Parcelize 注解轻松创建 Parcelable。
-
Android Kotlin Extensions Gradle 插件
https://plugins.gradle.org/plugin/org.jetbrains.kotlin.android.extensions
-
Android KTX
https://developer.android.google.cn/kotlin/ktx
-
Parcelable
https://developer.android.google.cn/reference/android/os/Parcelable
我们随后发布了适用于 Android 的视图绑定组件,它是一个与 Android 构建工具链深度集成并提供与 Kotlin synthetic 类似功能的官方支持库。我们虽然仍推荐使用 Parcelize,但 Kotlin synthetic 却存在一些弊端:
污染全局命名空间
不能暴露可空性信息
仅支持 Kotlin 代码
-
适用于 Android 的视图绑定
https://developer.android.google.cn/topic/libraries/view-binding
Android Kotlin Extensions 插件最初由 JetBrains 开发,我们也共同讨论了继续保留 synthetic 的利弊: 我们尽力确保在可行范围内对 API 的长期支持,但我们也希望为开发者提供指导,帮助开发者维护健康的代码库并最终赢得用户的满意。
在接下来的一年里,我们的团队将共同弃用 synthetics,并继续支持我们建议的选项——"视图绑定 (View Binding)"。这意味着:
如果您正在使用 Parcelize,则可以继续使用相同的注解和 API。但是,注解包将更改为 kotlinx.parcelize,并且在模块级 Gradle 文件中,您需要开始使用独立的 kotlin-parcelize 插件而非 android-kotlin-extensions。您可以在 Android 开发者官方网站上找到有关 Parcelize 的文档: https://developer.android.google.cn/kotlin/parcelize
如果您使用 Android Kotlin synthetics,建议尽快迁移到 "视图绑定 (View Binding)"。请参阅我们的迁移指南以了解更多详细信息: https://developer.android.google.cn/topic/libraries/view-binding/migration
弃用期随着 Kotlin 1.4.20 的发布正式开始。android-kotlin-extensions 将继续保留至少一年时间,但在 2021 年 9 月或之后的 Kotlin 版本中将被移除。长期来看,我们将继续保留 kotlin-parcelize 插件,您也可以继续在 Android Studio 问题追踪器中提交有关 Parcelize 的问题。
-
Kotlin 1.4.20
https://blog.jetbrains.com/kotlin/2020/11/kotlin-1-4-20-released/
-
Android Studio 问题追踪器
https://issuetracker.google.com/issues/new?component=971607&template=1516400
推荐阅读
点击屏末 | 阅读原文 | 参阅 "视图绑定 (View Binding)" 迁移指南
本文地址:https://blog.csdn.net/jILRvRTrc/article/details/110675270