[AD BLOG] Masa depan Android Kotlin Extensions

Masa depan Android Kotlin Extensions

Plugin Gradle Android Kotlin Extensions (jangan disamakan dengan Android KTX) dirilis pada tahun 2017 dan menghadirkan dua kemudahan baru untuk pengembangan Android di Kotlin:

  • Synthetic memungkinkan Anda mengganti panggilan ke findViewById dengan binding android.synthetic.
  • Parcelize memungkinkan Anda menghapus boilerplate dan dengan mudah membuat Parcelables melalui anotasi @Parcelize.

Sejak saat itu, kami telah merilis View Binding for Android, library dengan dukungan resmi yang memiliki integrasi mendalam dengan toolchain build Android dan menyediakan fungsi yang serupa dengan synthetic Kotlin. Meskipun kami terus merekomendasikan Parcelize, sejumlah kelemahan muncul saat menggunakan synthetic Kotlin:

  • Mereka mencemari namespace global
  • Mereka tidak mengekspos informasi nullability
  • Mereka hanya bekerja dalam kode Kotlin

JetBrains awalnya mengembangkan plugin Android Kotlin Extensions, dan kami semua telah membahas kelebihan dan kekurangan dari terus mempertahankan synthetic: kami berusaha keras untuk menjamin dukungan jangka panjang untuk API, tetapi kami juga ingin membimbing developer menuju praktik terbaik yang membuat basis kode yang baik, pada akhirnya, pengguna yang senang.

Tahun depan, tim kami akan bersama-sama menghentikan penggunaan synthetic untuk terus mendukung opsi yang kami rekomendasikan, View Binding. Inilah artinya:

  • Jika Anda menggunakan Parcelize, Anda bisa terus menggunakan anotasi dan API yang sama. Namun, paket anotasi akan berubah menjadi parcelize, dan dalam file Gradle tingkat modul, Anda harus mulai menggunakan plugin kotlin-parcelize mandiri, bukan android-kotlin-extensions. Anda dapat menemukan dokumentasi Parcelize di situs dokumentasi developer Android.
  • Anda harus bermigrasi ke View Binding jika menggunakan synthetic Android Kotlin. Lihat panduan migrasi kami untuk lebih jelasnya.

Periode penghentian dimulai dengan Kotlin 1.4.20, yang dirilis hari ini. android-kotlin-extensions akan terus ada setidaknya selama satu tahun, tetapi akan dihapus pada rilis Kotlin mendatang selama atau setelah September 2021. Untuk jangka panjang, kami akan terus mempertahankan plugin kotlin-parcelize, dan Anda bisa terus melaporkan masalah Parcelize di issue tracker Android Studio.