Kotlin 1.8 將徹底移除 Kotlin Synthetics

2022-02-27 09:00:16

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 外掛中使用,功能上沒有發生任何變化。

展開閱讀全文