Lewati ke konten

Apa yang Baru di Wails v3

Wails v3 memperkenalkan perubahan signifikan dari v2. Wails v3 menggantikan API deklaratif single-window dengan pendekatan prosedural yang lebih fleksibel. Desain API baru ini meningkatkan keterbacaan kode dan menyederhanakan development, terutama untuk aplikasi multi-window yang kompleks.

Wails v3 mewakili evolusi substansial dalam cara aplikasi desktop dapat dibangun menggunakan Go dan teknologi web.

Wails v3 memperkenalkan kemampuan untuk membuat dan mengelola banyak window dalam satu aplikasi. Fitur ini memungkinkan developer merancang antarmuka pengguna yang lebih kompleks dan serbaguna, melampaui keterbatasan aplikasi single-window.

Setiap window dapat dikonfigurasi secara independen, memberikan fleksibilitas dalam hal ukuran, posisi, konten, dan perilaku. Ini memungkinkan pembuatan aplikasi dengan window terpisah untuk fungsionalitas berbeda, seperti antarmuka utama, panel pengaturan, atau tampilan tambahan.

Developer dapat membuat, memanipulasi, dan mengelola window ini secara programatis, memungkinkan antarmuka pengguna dinamis yang beradaptasi terhadap kebutuhan pengguna dan state aplikasi.

Wails v3 memperkenalkan dukungan robust untuk fungsionalitas system tray, memungkinkan aplikasi Anda mempertahankan kehadiran persisten di desktop pengguna. Fitur ini sangat berguna untuk aplikasi yang perlu berjalan di background atau menyediakan akses cepat ke fungsi utama.

Fitur utama integrasi system tray Wails v3 meliputi:

  1. Window Attachment: Anda dapat mengasosiasikan window dengan ikon system tray. Saat diaktifkan, window ini akan di-center relatif terhadap posisi ikon, memberikan cara bagus untuk mengakses aplikasi dengan cepat.

  2. Dukungan Menu Komprehensif: Buat menu kaya dan interaktif yang dapat diakses pengguna langsung dari ikon system tray. Ini memungkinkan aksi cepat tanpa perlu membuka window aplikasi penuh.

  3. Tampilan Ikon Adaptif: Dukungan ikon light dan dark mode memastikan ikon system tray aplikasi tetap terlihat dan estetis di berbagai tema sistem. Template icon juga didukung di macOS.

Wails v3 memperkenalkan peningkatan signifikan dalam cara bindings di-generate untuk proyek Anda. Bindings adalah lem yang menghubungkan backend Go ke frontend, memungkinkan komunikasi seamless antara keduanya.

Pembuatan binding sekarang dilakukan menggunakan static analyzer canggih yang secara radikal meningkatkan proses pembuatan binding. Analyzer menawarkan kecepatan yang ditingkatkan dan mempertahankan kualitas kode dengan mempertahankan komentar dan nama parameter.

Proses pembuatan binding telah disederhanakan, hanya memerlukan satu perintah: wails3 generate bindings.

Wails v3 memperkenalkan sistem build yang lebih fleksibel dan transparan, mengatasi keterbatasan pendahulunya. Di v2, proses build sebagian besar opaque dan sulit dikustomisasi, yang bisa membuat frustrasi developer yang menginginkan lebih kontrol atas proses build proyek mereka.

Semua heavy lifting yang dilakukan sistem build v2, seperti pembuatan icon dan pembuatan manifest, telah ditambahkan sebagai perintah tool di CLI. Kami menggabungkan Taskfile ke CLI untuk mengorkestrasi panggilan ini agar memberikan developer experience yang sama seperti v2. Namun, pendekatan ini membawa keseimbangan ultimate fleksibilitas dan kemudahan penggunaan karena Anda sekarang dapat menyesuaikan proses build sesuai kebutuhan.

Anda bahkan bisa memakai make jika itu yang Anda suka!

Wails sekarang mengirim events untuk berbagai operasi runtime dan aktivitas sistem. Ini memungkinkan aplikasi Anda merespons events ini secara real-time. Selain itu, events lintas platform (common) tersedia, memungkinkan Anda menulis metode penanganan event konsisten yang berfungsi di sistem operasi berbeda.

Event hook dapat didaftarkan untuk menangani events spesifik secara sinkron. Berbeda dengan method On, hook ini memungkinkan Anda membatalkan event jika diperlukan. Kasus penggunaan umum adalah menampilkan dialog konfirmasi sebelum menutup window. Ini memberi Anda lebih banyak kontrol atas alur event dan pengalaman pengguna.

Fitur eksperimental untuk memanggil method runtime menggunakan plain html, mirip htmx.

Lebih banyak contoh tersedia di direktori examples. Lihat mereka!