Kotlin 1.8 將徹底移除 Kotlin Synthetics
Kotlin Android Extensions Gradle 插件最初由 JetBrains 開發,并于 2017 年發布。這個插件為 Android 開發提供了兩項非常優秀的特性,分別是 Synthetics 和 Parcelize。
其中 Synthetic 可以讓開發者減少對findViewById的使用,用 kotlinx.android.synthetic 綁定就能實現;而 Parcelize 可以讓開發者用@Parcelize的注解就能實現 Parcelable 而不用寫模板代碼。
雖然 Synthetic 具備不錯的優點,但 Synthetic 同時也存在諸如污染全局命名空間、不能暴露可空性信息和僅支持 Kotlin 代碼的缺點。
也正是因為這些缺點,后來 Android 團隊發布了 View Binding 用于取代 findViewById。View Binding 是一個允許開發者更容易編寫與視圖交互的代碼的功能。一旦在一個模塊中啟用了 View Binding,它會為該模塊中的每個 XML 布局文件生成一個綁定類。綁定類的一個實例包含對所有在相應布局中擁有 ID 的視圖的直接引用。
為了支持更好的解決方案,在 2020 年 11 月,Android 開發團隊就宣布 Android Kotlin Extensions Gradle 插件已經被廢棄,并建議開發者從項目中刪除這個插件。為了開發者有更多的時間來完成遷移,Android 開發團隊還延長了支持的時間。
如今,Android 團隊為遷移設定了一個最后期限:該插件將在 Kotlin 1.8 中被徹底移除,該版本預計將于 2022 年底發布。屆時,如果你的項目仍然依賴于這個插件,開發者將無法更新到最新的 Kotlin 版本。
開發者無需擔心該插件所包含的另一個功能 Parcelize,Parcelize 現在可以在獨立的 kotlin-parcelize 插件中使用,功能上沒有發生任何變化。
本文轉自OSCHINA
本文標題:Kotlin 1.8 將徹底移除 Kotlin Synthetics
本文地址:https://www.oschina.net/news/184251/discontinuing-kotlin-synthetics