Jetpack Compose untuk Desktop menambahkan lapisan Swing dan dukungan Apple Silicon

JetBrains telah merilis versi baru Jetpack Compose untuk Desktop, sebuah framework pengembangan UI lintas platform sumber terbuka.

Jika Anda melakukan pekerjaan pengembangan apa pun, Anda mungkin pernah mendengar tentang JetBrains. Mereka adalah perusahaan di balik rangkaian besar IDE yang mencakup IntelliJ (basis untuk Android Studio), CLion, PhpStorm, dan banyak lainnya. Mereka juga yang membuat Kotlin, bahasa pemrograman lintas platform yang sangat populer.

Dan JetBrains kembali melakukannya lagi. Sekitar setahun yang lalu, Google memperkenalkan mesin tata letak baru untuk Android yang disebut Jetpack Compose. Itu sudah lewat beberapa perubahan besar sejak saat itu, tapi ini berubah menjadi alternatif yang kompeten (walaupun masih agak tidak stabil) untuk tata letak XML klasik Android.

Apa hubungannya Jetpack Compose dengan JetBrains? Salah satunya, ini ditulis di Kotlin. Namun JetBrains juga diam-diam mengerjakan porting Compose ke ruang desktop. Sudah dipublikasikan sebagai pratinjau pengembang awal, dan sekarang JetBrains siap mengumumkan secara resmi keberadaannya.

Apa itu Jetpack Compose?

Saya sudah membicarakannya sedikit di pendahuluan, tapi menurut saya ini perlu penjelasan lebih lanjut. Jika Anda pernah mengembangkan di Android sebelumnya, Anda mungkin sudah terbiasa dengan cara kerja tata letak. Pertama, Anda mendesain tata letak dalam file XML, lalu berinteraksi dengan tata letak tersebut dari Java atau Kotlin. Meskipun berfungsi, ini agak ketinggalan jaman, dan membagi tata letak Anda ke berbagai bahasa mungkin sulit untuk dikelola.

Sebagai alternatifnya, Google mulai mengembangkan Jetpack Compose. Compose adalah mesin tata letak untuk Android yang dibangun di atas Kotlin. Semua tata letak dan kode logika Anda ada di satu tempat, sehingga interaktivitas menjadi lebih mudah. Ini juga bersifat deklaratif, bukan gaya tata letak XML yang imperatif.

Beralih ke mesin tata letak deklaratif dari mesin tata letak imperatif mungkin memerlukan waktu untuk membiasakan diri, namun Compose jelas merupakan peningkatan dibandingkan XML, meskipun masih dalam tahap awal.

Jetpack Menulis untuk Desktop

Jadi, Compose adalah alternatif tata letak yang bagus untuk aplikasi Android asli. Tapi ini (biasanya) bukan lintas platform. Di situlah JetBrains berperan. Perusahaan telah mem-porting Jetpack Compose ke ruang desktop, dengan dukungan untuk Windows, Linux, dan macOS (Intel dan ARM).

Meskipun ada mesin tata letak lain yang ada untuk desktop, seperti Electron, JavaFX, dan UWP, saat ini agak berantakan. Beberapa tidak bersifat lintas platform, jadi hanya berfungsi pada satu sistem operasi tertentu. Lainnya secara teknis bersifat lintas platform, tetapi memerlukan banyak pekerjaan untuk didistribusikan. Namun, yang lainnya sulit untuk dikerjakan, seperti JavaFX.

Jetpack Compose untuk Desktop, di sisi lain, relatif mudah digunakan, mendukung penskalaan tampilan, memiliki gaya bawaan, dan (hampir) sepenuhnya lintas platform. Meskipun Anda belum dapat mengkompilasi semua distribusi dari satu sistem operasi, kodenya sendiri sepenuhnya portabel. Sama seperti Android, aplikasi yang dikemas didasarkan pada Java, meskipun pengguna tidak memerlukan instalasi JDK untuk menggunakannya.

Kompatibilitas Lintas

Karena Compose untuk Desktop masih baru, ada beberapa fitur yang hilang. Untuk membantu pengembang mengatasi keterbatasan ini, Compose untuk Desktop dapat dioperasikan dengan dua mesin tata letak Java yang lebih populer, JavaFX dan Swing. Jika Anda memiliki aplikasi desktop yang dikembangkan di salah satu (atau kedua) mesin ini, Anda dapat mulai bertransisi ke Compose sambil mempertahankan basis kode Anda saat ini.

Android + Desktop

Bagaimana jika Anda ingin menghadirkan aplikasi Compose Android ke desktop? Ya, Anda juga bisa (semacamnya) melakukan itu. Elemen UI aplikasi Anda dapat dengan mudah dibagikan antara Android dan desktop. Anda tidak akan bisa membagikan semuanya, namun hal ini tentunya membuat pengembangan menjadi lebih mudah.

Dukungan Silikon Apple

Saya telah menyebutkan ini di atas, tetapi saya akan menyebutkannya lagi. Itu Apple Silicon Mac baru cukup luar biasa, tetapi prosesornya didasarkan pada arsitektur CPU ARM, yang berarti banyak aplikasi macOS saat ini berjalan melalui penerjemah Rosetta 2 x86. Meskipun Apple melakukan pekerjaan yang cukup baik dengan terjemahan tersebut, program ARM asli akan tetap berjalan lebih baik.

Ya, Jetpack Compose untuk Desktop mendukung Apple Silicon secara asli. Itu berarti Anda tidak perlu khawatir tentang penurunan kinerja akibat terjemahan atau tentang dukungan di masa mendatang ketika Apple menghentikannya.

Kegunaan

Jadi, baik-baik saja jika JetBrains membuat mesin tata letak baru untuk desktop, tapi siapa bilang itu lebih baik dari yang kita miliki sekarang?

Aku.

Saya menggunakan versi terbaru yang tersedia saat menulis ini (0.2.0-build132) untuk membuat aplikasi pemberi izin sederhana untuk SystemUI Tuner. Karena saya tidak begitu paham dengan Compose dan desain deklaratif, ini sedikit lebih sulit bagi saya dibandingkan aplikasi tata letak XML, namun saya berhasil. Dan itu jauh lebih mudah digunakan daripada JavaFX.

Meskipun dukungan tema (yaitu mode gelap) masih agak rapuh, cukup mudah untuk membuat tata letak interaktif, dan selain beberapa kedipan saat mengubah ukuran jendela, semuanya berfungsi dengan baik.

Jika Anda ingin memeriksa aplikasinya, kode sumber tersedia di GitHub. Impor saja dengan IntelliJ atau Android Studio dan itu akan siap dijalankan.


Secara pribadi, saya cukup tertarik dengan Jetpack Compose untuk Desktop. Saya bahkan tidak mengetahui keberadaannya sebelumnya, namun ini sudah menjadi mesin tata letak desktop pilihan saya. Anda dapat mempelajari lebih lanjut di Situs web Jetpack Compose untuk Desktop atau di GitHub.

Apa yang Anda pikirkan? Apakah layak untuk dicoba dan bahkan mungkin digunakan sebagai pengganti kerangka kerja lain yang tersedia? Biarkan aku tahu!

Kredit gambar unggulan: JetBrains di GitHub