Blog

Wails v2 Dirilis

Catatan rilis dan pengumuman untuk Wails

leaanthony6 min read

montage screenshot

Sudah tiba!

Hari ini menandai rilis Wails v2. Sudah sekitar 18
bulan sejak alpha v2 pertama dan sekitar setahun sejak rilis beta pertama.
Saya benar-benar berterima kasih kepada semua yang terlibat dalam evolusi proyek ini.

Salah satu alasan prosesnya memakan waktu lama adalah karena ingin mencapai
definisi kelengkapan tertentu sebelum resmi menyebutnya v2. Kenyataannya,
tidak pernah ada waktu yang sempurna untuk menandai rilis - selalu ada masalah
yang belum terselesaikan atau “satu fitur lagi” yang ingin dimasukkan. Namun, menandai rilis major yang tidak sempurna
memberikan sedikit stabilitas bagi pengguna
proyek, serta reset bagi developer.

Rilis ini lebih dari yang pernah saya harapkan. Saya harap rilis ini memberi Anda
kesenangan sebanyak yang kami rasakan saat mengembangkannya.

Apa itu Wails?

Jika Anda belum familiar dengan Wails, ini adalah proyek yang memungkinkan programmer Go
menyediakan frontend kaya untuk program Go mereka menggunakan teknologi web yang familiar.
Ini adalah alternatif Go yang ringan untuk Electron. Informasi lebih lanjut dapat
ditemukan di situs resmi.

Apa yang baru?

Rilis v2 adalah lompatan besar untuk proyek ini, mengatasi banyak
pain point v1. Jika Anda belum membaca posting blog tentang rilis Beta
untuk macOS,
Windows atau
Linux, saya mendorong Anda untuk melakukannya karena
mencakup semua perubahan major secara lebih detail. Ringkasannya:

  • Komponen Webview2 untuk Windows yang mendukung standar web modern dan kemampuan debugging.

  • Tema Gelap / Terang + custom theming di Windows.

  • Windows sekarang tidak memiliki persyaratan CGO.

  • Dukungan out-of-the-box untuk template proyek Svelte, Vue, React, Preact, Lit & Vanilla.

  • Integrasi Vite menyediakan lingkungan pengembangan hot-reload untuk aplikasi Anda.

  • Menu dan dialog aplikasi native.

  • Efek transparansi window native untuk Windows dan

    macOS. Dukungan untuk backdrop Mica &

    Acrylic.

  • Mudah menghasilkan installer NSIS untuk deployment Windows.

  • Runtime library yang kaya menyediakan utility method untuk manipulasi window, eventing, dialog, menu dan logging.

  • Dukungan untuk obfuscating aplikasi Anda menggunakan garble.

  • Dukungan untuk mengompresi aplikasi Anda menggunakan UPX.

  • Generasi TypeScript otomatis dari struct Go. Info lebih lanjut di sini.

  • Tidak ada library atau DLL ekstra yang perlu dikirim dengan aplikasi Anda. Untuk platform apapun.

  • Tidak perlu membundel aset frontend. Cukup kembangkan aplikasi Anda seperti aplikasi web lainnya.

Kredit & Terima Kasih

Mencapai v2 membutuhkan upaya yang sangat besar. Ada ~2.2K commit oleh 89
kontributor antara alpha awal dan rilis hari ini, dan banyak
lagi yang telah menyediakan terjemahan, testing, feedback dan bantuan di
forum diskusi serta issue tracker. Saya sangat berterima kasih kepada
setiap orang. Saya juga ingin memberikan terima kasih ekstra khusus kepada semua
sponsor proyek yang telah memberikan bimbingan, saran dan feedback. Semua yang
Anda lakukan sangat dihargai.

Ada beberapa orang yang ingin saya sebutkan secara khusus:

Pertama, terima kasih besar kepada @stffabi yang telah
memberikan begitu banyak kontribusi yang kita semua manfaatkan, serta memberikan
banyak dukungan pada banyak issue. Ia telah memberikan beberapa fitur kunci seperti
dukungan external dev server yang mentransformasi penawaran dev mode kami dengan memungkinkan
kami terhubung ke superpowers Vite. Adil untuk dikatakan bahwa
Wails v2 akan jauh kurang menarik tanpa
kontribusi luar biasa-nya.
Terima kasih banyak @stffabi!

Saya juga ingin memberikan shout-out besar kepada
@misitebao yang tanpa lelah memelihara
website, serta menyediakan terjemahan Chinese, mengelola Crowdin dan
membantu translator baru up to speed. Ini adalah tugas yang sangat penting, dan
saya sangat berterima kasih atas semua waktu dan upaya yang dicurahkan! Anda hebat!

Terakhir, tapi tidak kalah penting, terima kasih besar kepada Mat Ryer yang telah memberikan saran dan
dukungan selama pengembangan v2. Menulis xBar bersama menggunakan Alpha awal
v2 sangat membantu membentuk arah v2, serta memberi saya
pemahaman tentang beberapa kelemahan desain di rilis awal. Saya dengan senang hati mengumumkan
bahwa mulai hari ini, kami akan mulai mem-port xBar ke Wails v2, dan xBar akan menjadi
aplikasi flagship untuk proyek ini. Cheers Mat!

Pelajaran yang Dipetik

Ada sejumlah pelajaran yang dipetik dalam perjalanan menuju v2 yang akan membentuk
pengembangan ke depan.

Rilis Lebih Kecil, Lebih Cepat, dan Fokus

Dalam pengembangan v2, ada banyak fitur dan perbaikan bug yang
dikembangkan secara ad-hoc. Ini menyebabkan siklus rilis lebih lama dan lebih sulit
didebug. Ke depan, kami akan membuat rilis lebih sering yang akan
mencakup jumlah fitur yang lebih sedikit. Rilis akan melibatkan pembaruan
dokumentasi serta testing menyeluruh. Semoga rilis yang lebih kecil, lebih cepat,
dan fokus ini akan menghasilkan lebih sedikit regresi dan dokumentasi
berkualitas lebih baik.

Mendorong Keterlibatan

Ketika memulai proyek ini, saya ingin segera membantu semua orang yang memiliki
masalah. Issue terasa “personal” dan saya ingin masalah diselesaikan secepat
mungkin. Ini tidak sustainable dan pada akhirnya bekerja melawan longevity
proyek. Ke depan, saya akan memberikan lebih banyak ruang bagi orang untuk
terlibat dalam menjawab pertanyaan dan triaging issue. Akan bagus jika mendapat
beberapa tooling untuk membantu hal ini jadi jika Anda punya saran, silakan bergabung dalam
diskusi di sini.

Belajar Mengatakan Tidak

Semakin banyak orang yang terlibat dengan proyek Open Source, semakin banyak permintaan
untuk fitur tambahan yang mungkin atau mungkin tidak berguna bagi mayoritas
orang. Fitur-fitur ini akan membutuhkan waktu awal untuk dikembangkan dan didebug,
dan menimbulkan biaya maintenance berkelanjutan sejak saat itu. Saya sendiri yang paling
bersalah, sering ingin “memasak lautan” alih-alih menyediakan fitur
minimum viable. Ke depan, kami perlu lebih sering mengatakan “Tidak” untuk menambahkan
fitur inti dan fokus energi kami pada cara memberdayakan developer untuk menyediakan
fungsionalitas itu sendiri. Kami serius melihat plugin untuk
skenario ini. Ini akan memungkinkan siapapun memperluas proyek sesuai keinginan, serta
menyediakan cara mudah untuk berkontribusi pada proyek.

Melihat ke Masa Depan

Ada begitu banyak fitur inti yang kami lihat untuk ditambahkan ke Wails dalam
siklus pengembangan major berikutnya. Roadmap
penuh dengan ide menarik, dan saya ingin segera mulai mengerjakannya. Salah satu permintaan besar
adalah dukungan multiple window. Ini tricky dan untuk melakukannya dengan benar,
kami mungkin perlu melihat menyediakan API alternatif, karena API saat ini tidak
dirancang dengan ini dalam pikiran. Berdasarkan beberapa ide awal dan feedback, saya
pikir Anda akan suka arah yang kami tuju.

Saya pribadi sangat antusias dengan prospek menjalankan aplikasi Wails di
mobile. Kami sudah memiliki proyek demo yang menunjukkan bahwa memungkinkan menjalankan
aplikasi Wails di Android, jadi saya sangat ingin mengeksplorasi kemana kami bisa pergi dengan ini!

Poin terakhir yang ingin saya angkat adalah feature parity. Sudah lama menjadi
prinsip inti bahwa kami tidak akan menambahkan apapun ke proyek tanpa ada
dukungan cross-platform penuh. Meskipun ini terbukti (sebagian besar)
tercapai sejauh ini, ini benar-benar menahan proyek dalam merilis fitur
baru. Ke depan, kami akan mengadopsi pendekatan sedikit berbeda: fitur
baru apapun yang tidak dapat segera dirilis untuk semua platform akan
dirilis di bawah konfigurasi atau API eksperimental. Ini memungkinkan early adopter
di platform tertentu mencoba fitur dan memberikan feedback yang akan masuk ke
desain final fitur. Ini, tentu saja, berarti tidak ada
jaminan stabilitas API hingga sepenuhnya didukung oleh semua platform yang dapat
didukung, tetapi setidaknya ini akan membuka blokade pengembangan.

Kata Penutup

Saya benar-benar bangga dengan apa yang telah kami capai dengan rilis V2. Luar biasa
melihat apa yang sudah dapat dibangun orang menggunakan rilis beta
sejauh ini. Aplikasi berkualitas seperti Varly,
Surge dan October. Saya
mendorong Anda untuk melihatnya.

Rilis ini dicapai melalui kerja keras banyak kontributor. Meskipun
gratis untuk diunduh dan digunakan, rilis ini tidak terjadi tanpa biaya. Jangan
salah paham, proyek ini datang dengan biaya yang considerable. Ini bukan hanya
waktu saya dan waktu setiap kontributor, tetapi juga biaya absensi
dari teman dan keluarga masing-masing orang juga. Itulah mengapa saya sangat
berterima kasih untuk setiap detik yang didedikasikan untuk mewujudkan proyek ini.
Semakin banyak kontributor yang kita miliki, semakin upaya ini dapat
disebar dan semakin banyak yang dapat kita capai bersama. Saya ingin mendorong Anda semua untuk memilih satu hal
yang dapat Anda kontribusikan, apakah mengonfirmasi bug seseorang, menyarankan
perbaikan, membuat perubahan dokumentasi atau membantu seseorang yang membutuhkannya. Semua
hal kecil ini memiliki dampak yang sangat besar! Akan sangat keren jika Anda juga
menjadi bagian dari cerita dalam perjalanan menuju v3.

Selamat menikmati!

‐ Lea

PS: Jika Anda atau perusahaan Anda merasa Wails berguna, pertimbangkan
menyponsori proyek ini. Terima kasih!