Bikin Aplikasi Desktop Cross-Platform dengan Avalonia UI dan C#

Salah satu proyek yang saya kerjain di Hantechno butuh aplikasi desktop yang harus jalan di Windows, macOS, dan Linux tanpa nulis tiga codebase terpisah. Awalnya saya coba beberapa opsi — Electron sempet masuk daftar, terus saya coret duluan karena butuh runtime browser yang berat buat aplikasi yang sebenernya nggak butuh UI seberat itu. Setelah coba-coba, saya akhirnya settle di Avalonia UI dengan C#.
Kenapa Avalonia, bukan yang lain
Avalonia itu mirip WPF dari sisi XAML dan data binding, jadi karena saya udah biasa sama .NET dari kerjaan-kerjaan sebelumnya, learning curve-nya nggak terlalu curam — sebagian besar konsep MVVM yang saya udah kenal tetep kepake. Bedanya, Avalonia beneran cross-platform: satu codebase, render sendiri di tiap OS pakai Skia, jadi tampilannya konsisten tanpa perlu native control per platform yang biasanya bikin behavior sedikit beda-beda di tiap OS.
Yang saya suka
Hot reload buat preview UI itu ngebantu banget pas iterasi cepat — ubah XAML, langsung keliatan tanpa full rebuild. Styling-nya juga mirip CSS lewat resource dan style selector di XAML, jadi kalau kamu udah biasa web, nggak terlalu asing. Komunitasnya aktif walau jelas nggak sebesar Electron atau Flutter — pertanyaan spesifik kadang butuh lebih lama nemu jawabannya dibanding tinggal googling react-native.
Yang bikin saya sempet ragu
Dokumentasi buat kasus-kasus advanced — custom rendering, native interop ke API OS tertentu — masih agak tipis dibanding opsi yang lebih mainstream. Ada satu kasus waktu saya butuh akses low-level ke koneksi network buat fitur VPN, dan saya harus gali source code Avalonia sendiri buat ngerti behavior yang nggak terdokumentasi dengan jelas. Nggak sampai bikin saya nyerah, tapi itu bukan pengalaman yang mulus kayak baca dokumentasi Flutter yang jauh lebih lengkap.
Buat kasus saya, ternyata pas
Aplikasi yang saya kerjain butuh akses low-level — koneksi VPN, remote desktop, security reporting — sambil tetap punya UI yang enak dipakai buat end-user yang nggak semuanya teknis. Avalonia plus C# ternyata pas buat kombinasi itu. Nggak butuh runtime browser kayak Electron, dan performanya jauh lebih ringan — startup time-nya kerasa beda banget dibanding aplikasi Electron yang pernah saya pakai.
Kalau kamu lagi cari alternatif WPF yang beneran cross-platform, dan kamu udah nyaman sama ekosistem .NET, worth dicoba. Kalau kamu mulai dari nol tanpa background .NET sama sekali, mungkin Flutter atau Tauri lebih masuk akal buat starting point.