Kotlin Android Extensions 的將來計劃

做者 / 產品經理 David Winerandroid

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 卻存在一些弊端:gradle

  • 污染全局命名空間
  • 不能暴露可空性信息
  • 僅支持 Kotlin 代碼

Android Kotlin Extensions 插件最初由 JetBrains 開發,咱們也共同討論了繼續保留 synthetic 的利弊: 咱們盡力確保在可行範圍內對 API 的長期支持,但咱們也但願爲開發者提供指導,幫助開發者維護健康的代碼庫並最終贏得用戶的滿意。網站

在接下來的一年裏,咱們的團隊將共同棄用 synthetics,並繼續支持咱們建議的選項——"視圖綁定 (View Binding)"。這意味着:google

  • 若是您正在使用 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 的問題。插件

相關文章
相關標籤/搜索