Android Kotlin扩充套件将在今年底从Kotlin 1.8移除

预计于今年底发布的Kotlin 1.8,将会移除Kotlin Android Extensions Gradle套件,仍使用视图合成的项目,Google建议应该尽速移植使用视图绑定方法

Android Kotlin扩充套件将在今年底从Kotlin 1.8移除

谷歌给出Kotlin Android Extensions Gradle套件明确的删除时间表,将会在今年年底发布的Kotlin 1.8中移除,届时仍相依于Kotlin Android Extensions Gradle套件的项目,将无法更新到新的Kotlin版本。

Kotlin Android Extensions Gradle套件在2017年的时候发布,在Kotlin的Android开发提供两项方便的功能,分别是Synthetics和Parcelize。 Synthetics是为了要减少呼叫findViewById所需要的样板代码,因此由JetBrains在Kotlin Android Extensions Gradle套件中,提供创建访问视图的合成属性。

从那时起,谷歌发布了适用于Android的View Binding,这是一个由官方支持的库,并且和Android建置工具链深度整合,提供类似Kotlin Synthetics的功能。 但谷歌发现Kotlin Synthetics有几个明显的缺点,除了污染全域命名空间,不公开可空信息之外,而且还仅适用Kotlin代码。

因此在2020年11月的时候,谷歌就宣布要停用这个套件,支持更新更好的解决方案,并且建议用户在项目中删除该套件。

但官方提到,他们发现有许多用户仍然依赖这个套件的功能,所以延长了支持时间,让用户有更多的搬迁时间。 而现在这个延长时间,已经到了最后的期限,因此官方预计在2022年底要发布的Kotlin 1.8 中,删除Kotlin Android Extensions Gradle套件。

同时官方建议用户,应采用从XML布局档案所产生的类型安全绑定类别来绑定视图,而非使用原本Synthetics的方法,这些绑定让开发者方便地引用视图参照,并且安全地将其用于各种配置的布局。 谷歌建议用户,在建构新功能的时候,考虑使用Android新的UI工具包Jetpack Compose,由于Compose是以宣告式的方法建置布局,因此不需要使用视图参照。

Kotlin Android Extensions Gradle套件中的另一个功能Parcelize,供用户创建可打包的类别,现在Parcelize在独立的套件kotlin-parcelize中提供,所有功能不变。

(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

发表评论

登录后才能评论