Diposting oleh Ting-Yuan Huang, Software Engineer dan David Winer, Product Manager
Hari ini kami dengan gembira mengumumkan versi alfa Kotlin Symbol Processing (KSP), alat terbaru untuk membangun plugin compiler ringan di Kotlin. KSP menawarkan fungsi yang mirip dengan KAPT, tetapi berkinerja hingga 2x lebih cepat, menawarkan akses langsung ke fitur compiler Kotlin, dan sedang dikembangkan dengan mempertimbangkan kompatibilitas multiplatform.
KSP kompatibel dengan rilis Kotlin 1.4.30 dan selanjutnya. Anda bisa melihat kode dan dokumentasi sumber terbuka di repositori GitHub KSP.
Permintaan no. 1 yang kami dengar dari developer Kotlin adalah mempercepat build. Banyak developer melakukan iterasi dan menerapkan aplikasi puluhan kali sehari, jadi keharusan menunggu build yang lambat sangatlah memakan waktu. Salah satu tantangan terbesar dalam mengompilasi kode Kotlin adalah karena Kotlin tidak memiliki sistem pemrosesan anotasi native. Pemroses anotasi seperti Room sering dipakai di Android dan mengandalkan kompatibilitas pemrosesan anotasi Java melalui Kotlin Annotation Processing Tool (KAPT). KAPT boleh jadi berjalan lambat, karena memerlukan pembuatan stub Java intermediate yang nanti bisa diserap oleh sistem pemrosesan anotasi Java.
Saat mendesain KSP, kami memikirkan tampilan pemrosesan anotasi untuk Kotlin jika kami membangunnya dari nol. KSP menawarkan API yang andal tetapi sederhana untuk mengurai kode Kotlin secara langsung, yang secara dramatis mengurangi beban kecepatan build yang disebabkan oleh pembuatan stub KAPT. Memang, tolok ukur awal pada library Room menunjukkan bahwa KSP sekitar 2x lebih cepat dari KAPT.
Untuk melihat aksi KSP, download project playground KSP dari GitHub. Di dalamnya Anda akan menemukan:
test-processor
workload
Semua logika untuk mengimplementasikan builder ada di test-processor — untuk konsumen (workload), satu-satunya perbedaan antara menggunakan KAPT dan KSP adalah perubahan file build dua baris:
Inilah tujuan KSP: mayoritas developer aplikasi Android tidak perlu khawatir tentang internalnya; selain perubahan satu baris ini, library yang mendukung KSP terlihat persis seperti pemroses anotasi biasa, cuma hingga 2x lebih cepat. Meskipun demikian, menggunakan KAPT dan KSP dalam modul yang sama kemungkinan akan memperlambat build Anda pada awalnya, jadi selama periode alfa ini, sebaiknya gunakan KSP dan KAPT dalam modul terpisah.
Dengan semakin banyaknya pemroses anotasi mengadopsi KSP, kami berharap mayoritas modul Anda bisa menggunakan KSP sebagai pengganti KAPT. Untuk saat ini, Anda bisa memeriksa pemroses anotasi mana yang menawarkan dukungan KSP dalam tabel ini. Jika library yang mendukung atau mengimplementasikan dukungan untuk KSP tidak tercantum di tabel, harap kirimkan permintaan pull beserta saran Anda!
Jika Anda adalah pembuat library yang saat ini menggunakan pemrosesan anotasi, Anda bisa menemukan informasi selengkapnya tentang cara membuat library agar kompatibel dengan KSP di panduan quickstart dan README.
Untuk pembuat library, sekarang KSP dalam versi alfa, inilah saat yang tepat untuk mulai mencermatinya dan memberi kami masukan tentang API ini di issue tracker KSP. Selain itu, kami secara rutin memposting update rilis pada saluran #ksp di Kotlin Slack. Sejak pratinjau developer Juni lalu, kami telah menutup lebih dari 100 bug dan masalah, banyak di antaranya dilaporkan oleh komunitas developer library Kotlin yang luar biasa.
Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
No comments :
Post a Comment