Apa Alternatif Electron Terbaik? Mari Kita Cari Tahu.

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

00:00:00membangun aplikasi desktop lintas platform dulu berarti menggunakan Electron, tapi akhir-akhir ini kita
00:00:04dimanja oleh banyak pilihan, jadi untuk meluruskan kebingungan, hari ini kita membandingkan tiga opsi terbaik
00:00:09untuk membangun aplikasi desktop lintas platform. Kita akan melihat Tauri yang ditulis dengan Rust, Electro-Bun dari tim Bun,
00:00:14Deno Desktop, penawaran baru dari Deno. Kita juga akan menggunakan Electron sebagai tolok ukur, dan jika Anda
00:00:20ingin melihat alat yang berbeda dibahas di saluran ini, beri tahu saya di kolom komentar.
00:00:23Kita akan membandingkan empat hal: ukuran paket (bundle size), kinerja startup, kinerja runtime, dan pengalaman
00:00:29pengembang. Saya telah membangun aplikasi yang sama sebanyak empat kali, alat perekam layar yang memungkinkan Anda mengedit hasil
00:00:35di linimasa dan mengeluarkan hasil dalam bentuk mp4. Saya sengaja memilih jenis aplikasi ini karena pemrosesan video
00:00:40dapat mendorong alat semacam ini hingga batasnya. Tentu saja, tidak semuanya bergantung pada kinerja,
00:00:44keterampilan tim Anda dan jenis produk yang sedang Anda bangun akan memengaruhi jenis
00:00:49kerangka kerja yang Anda pilih, tapi semoga ini bisa memberi Anda panduan tentang apa yang diharapkan.
00:00:58Jadi, mari kita langsung masuk ke demo aplikasi yang telah kita bangun. Kita mulai dengan meluncurkan
00:01:03aplikasi kita, kita bisa memilih layar mana yang akan direkam, lalu tekan tombol rekam. Sekarang kita bisa melakukan rekaman singkat
00:01:08di layar. Setelah selesai, kita bisa menekan stop, lalu jendela akan muncul dengan rekaman kita di
00:01:12linimasa. Kita kemudian bisa memotong ini untuk menghapus bagian yang tidak perlu, lalu tekan ekspor untuk menghasilkan file mp4. Aplikasi ini
00:01:18sebenarnya sangat sederhana, tetapi karena kita menggunakan beberapa API, merekam dan memproses video, serta
00:01:24merender UI, ini seharusnya menjadi tes yang cukup layak. Jadi hal pertama yang akan kita periksa adalah
00:01:28ukuran paket, dan ingat aplikasi-aplikasi ini memberikan fungsi yang identik. Electron sebagai tolok ukur adalah 323
00:01:35megabyte, Tauri hadir dengan hanya 57 megabyte, Electro-Bun adalah 418 megabyte, dan Deno adalah 111 megabyte.
00:01:44Semuanya juga memiliki FFmpeg yang disematkan untuk ekspor ke mp4, dan itu menambah 45 megabyte sendiri, dan Electro-Bun
00:01:52sangat besar karena saya harus mengirimkannya bersama Chromium. Saya mencoba sangat keras, tetapi saya benar-benar tidak bisa membuat
00:01:56rekaman layar bekerja dengan native system webview, khususnya untuk merekam dari JavaScript.
00:02:01Anda memerlukan API Screen Capture dan fungsi getDisplayMedia. Anda meminta layar kepada browser,
00:02:06ia akan memberikan Anda stream, media recorder mengodekannya, dan begitulah cara Electron dan Deno melakukannya. Electro-Bun
00:02:12sama sekali tidak menyertakan API itu, jadi satu-satunya cara untuk mengaksesnya adalah dengan memperkenalkan kembali Chromium, dan itu
00:02:17menambah beban ekstra 200 megabyte. API Deno memang menerapkan ini, jadi kodenya sama semua,
00:02:24tetapi tanpa Chromium, dan itulah mengapa ukuran paket Deno berakhir sekitar 100 megabyte, dan Electro-Bun
00:02:30berakhir mendekati 400. Dan Rust tidak memerlukan semua ini karena Tauri tidak merekam dari
00:02:35web view sama sekali, ia melakukannya melalui backend melalui native Screen Capture Kit. Ini adalah
00:02:40kerangka kerja macOS yang sama yang digunakan QuickTime, dan semuanya direkam langsung dari backend. Anda memberikannya
00:02:46tampilan, codec, dan jalur file, dan ia menulis filenya sendiri. Web view hanyalah UI, tidak pernah
00:02:52menyentuh satu frame pun, dan Anda juga mendapatkan hal-hal secara gratis yang harus ditangani oleh build JavaScript.
00:02:56Screen Capture Kit mencampur mic dan audio sistem Anda sendiri, dan ia menyelesaikan mp4 yang layak. Saya
00:03:02juga tetap menyertakan FFmpeg di dalam aplikasi Tauri agar kita bisa mengekspor ke format yang berbeda, tetapi secara teknis itu
00:03:07sebenarnya opsional. Oke, sekarang kita bisa meluncurkan aplikasi ini untuk mendeteksi waktu startup, dan saya telah menulis skrip
00:03:13yang melakukan ini 10 kali sehingga saya bisa mengambil medianya. Electron sebagai tolok ukur adalah 273 milidetik, Tauri
00:03:19sebenarnya hadir pada 311 milidetik, Electro-Bun 773 milidetik, dan Deno 242 milidetik.
00:03:29Dan kejutan di sini bagi saya adalah bahwa Tauri bukan yang tercepat, hanya sedikit di belakang Electron, dan kemudian Deno
00:03:34sebenarnya mengalahkan semua orang. Asumsinya adalah bahwa Rust ditambah sistem web view akan berarti startup instan,
00:03:39tetapi karena mesin rendering masih harus booting, bagaimanapun juga, itulah yang mungkin berkontribusi pada
00:03:44kecepatan startup yang sedikit lebih lambat. Electro-Bun adalah yang paling lambat, hampir tiga kali lipat dari Electron. Ia mem-boot
00:03:50peluncur yang mem-boot Bun yang mem-boot Chromium, tiga runtime dalam satu rantai, dan Anda benar-benar bisa merasakannya.
00:03:56Sekarang mari kita lihat memori setelah peluncuran. Setelah aplikasi benar-benar aktif dan berjalan, Electron adalah tolok ukur
00:04:01lagi, dan itu 128 megabyte. Tauri hadir pada 109 megabyte, Electro-Bun pada 208 megabyte, dan Deno pada 98
00:04:10megabyte. Jadi Deno dan Tauri pada dasarnya seimbang, dan kemudian Electro-Bun pada dasarnya dua kali lipat dari segalanya.
00:04:15Untuk Tauri, itu tidak mendekati peningkatan 10x yang tersirat dalam pemasaran. Di disk, ya, jauh
00:04:21lebih kecil, tetapi jejak memori sebenarnya saat aplikasi berjalan jauh lebih mirip dengan alat lain.
00:04:26Dan satu hal yang perlu diperhatikan saat Anda benar-benar melakukan pemeriksaan ini sendiri, Tauri menggunakan
00:04:31system web view, dan proses-proses itu bukanlah anak dari aplikasi Anda. macOS memulainya secara terpisah, jadi
00:04:36Activity Monitor menunjukkan Tauri pada sekitar 36 megabyte dan sepertinya itu mengalahkan Electron tiga kali lipat,
00:04:42tapi tidak. Jadi ketika Anda menambahkan semua proses tersebut, 36 megabyte itu menjadi lebih dekat ke 109 megabyte,
00:04:48yang merupakan apa yang kita catat dalam tes. Dalam hal rekaman layar itu sendiri, saya memang melihat kinerja yang jauh lebih baik
00:04:53dari aplikasi Tauri, dan ini mungkin karena kita tidak merekam data di web
00:04:58view lalu mentransfernya melalui bridge. Sebaliknya, semuanya direkam dengan SDK asli yang disertakan
00:05:04dengan sistem. Jika Anda ingin mendekati rekaman 60 fps, maka Rust dan Tauri adalah
00:05:10jalan yang harus ditempuh. Sekarang mari kita lihat pengalaman pengembang, dan karena perbedaan setiap platform, aplikasi sederhana ini
00:05:15sebenarnya sama sekali tidak mudah untuk dibangun. Secara keseluruhan, Electron dan Tauri adalah yang termudah untuk
00:05:20diimplementasikan, tetapi Deno dan Electro-Bun sebenarnya memiliki banyak masalah dan crash sistem. Di Deno, saat kita
00:05:26memulai rekaman dan kemudian menyembunyikan aplikasi, seluruh aplikasi akan langsung tertutup. Saya pikir ini karena
00:05:30ketika tidak ada layar yang tetap terlihat, Deno hanya mengasumsikan bahwa aplikasi sudah selesai, jadi ia menghentikan
00:05:36seluruh prosesnya. Jadi solusi peretasan untuk ini hanyalah menyembunyikan tampilan di luar layar.
00:05:41Electro-Bun memiliki semua masalah ini seputar kebutuhan untuk membundel Chromium untuk rekaman layar, dan untuk beberapa
00:05:46alasan, paketnya sebenarnya bergantung pada 3js dan babylon js, yang untuk rendering 3D, yang berkontribusi pada
00:05:53ukuran paket yang membengkak. Jadi secara keseluruhan, secara pribadi saya akan memilih Tauri, tetapi jika Anda benar-benar tidak ingin memprogram
00:05:58di Rust, maka Electron masih merupakan platform yang matang untuk pengembang TypeScript. Deno terlihat oke, tetapi saya pikir
00:06:04platform ini masih membutuhkan waktu untuk matang. Dan Electro-Bun bagi saya adalah yang terburuk dari semuanya.
00:06:09Jadi semoga Anda bisa membuat penilaian sendiri. Beri tahu saya pendapat Anda di kolom komentar, dan kita juga sudah
00:06:13membuat video sepenuhnya tentang Deno Desktop, jadi jika Anda ingin mempelajari lebih lanjut tentang itu, Anda bisa mengeklik video
00:06:18ini di sini. Selebihnya, saya Warren dari Betterstack, terima kasih telah menonton dan sampai jumpa di lain waktu.

핵심 요약

Tauri merupakan alternatif terbaik bagi pengembang yang mencari efisiensi ukuran paket dan performa rekaman layar tingkat lanjut, meski Electron tetap menjadi pilihan paling matang untuk aplikasi berbasis TypeScript.

하이라이트

  • Tauri menghasilkan ukuran paket aplikasi sebesar 57 MB, jauh lebih kecil dibandingkan Electron yang mencapai 323 MB.

  • Deno mencapai waktu startup tercepat dengan rata-rata 242 milidetik, sementara Electro-Bun adalah yang paling lambat dengan 773 milidetik.

  • Penggunaan memori saat runtime menunjukkan hasil serupa antara Deno (98 MB) dan Tauri (109 MB), sedangkan Electro-Bun mencapai 208 MB.

  • Tauri merekam layar melalui backend menggunakan Native Screen Capture Kit macOS, yang memberikan performa jauh lebih baik dibandingkan merekam melalui web view.

  • Electron dan Tauri menawarkan pengalaman pengembang yang paling stabil, sementara Deno dan Electro-Bun masih menghadapi masalah teknis seperti crash sistem.

타임라인

Perbandingan Metrik Kinerja Aplikasi

  • Aplikasi perekam layar yang identik digunakan untuk menguji Electron, Tauri, Electro-Bun, dan Deno.
  • Electron memiliki ukuran paket 323 MB, Tauri 57 MB, Deno 111 MB, dan Electro-Bun 418 MB.
  • Penyematan FFmpeg menambah beban 45 MB pada setiap aplikasi.
  • Electro-Bun membengkak hingga 400 MB karena ketergantungan wajib pada Chromium untuk mengakses API rekaman layar.

Pengujian dilakukan dengan membangun aplikasi perekam layar yang mampu memotong video dan mengekspornya ke format mp4. Ukuran paket Tauri menjadi yang terkecil karena memanfaatkan sistem web view bawaan dan SDK asli untuk perekaman layar. Sebaliknya, Electro-Bun memaksa penyertaan Chromium karena absennya API Screen Capture pada runtime-nya, yang menyebabkan ukuran aplikasi menjadi sangat besar.

Kecepatan Startup dan Memori

  • Deno mencatat waktu startup tercepat di 242 milidetik, mengalahkan Electron (273 ms) dan Tauri (311 ms).
  • Electro-Bun menjadi yang paling lambat dengan waktu startup 773 milidetik akibat rantai eksekusi tiga runtime.
  • Penggunaan memori saat aplikasi aktif berkisar antara 98 MB untuk Deno hingga 208 MB untuk Electro-Bun.
  • Tauri menunjukkan performa rekaman 60 fps yang lebih stabil karena tidak memproses data melalui bridge web view.

Hasil pengujian menunjukkan bahwa meski menggunakan Rust, Tauri tidak secara otomatis memberikan startup instan karena mesin rendering tetap memerlukan waktu untuk booting. Electro-Bun menderita beban kinerja karena harus menjalankan peluncur, Bun, dan Chromium secara berurutan. Tauri unggul dalam skenario berat seperti perekaman layar karena integrasi langsung dengan Native Screen Capture Kit milik macOS.

Pengalaman Pengembang dan Kesimpulan

  • Electron dan Tauri memberikan pengalaman implementasi yang paling stabil bagi pengembang.
  • Deno dan Electro-Bun masih memiliki masalah teknis seperti crash saat aplikasi disembunyikan atau kebutuhan dependensi yang tidak relevan.
  • Tauri menjadi pilihan utama karena keseimbangan antara ukuran, performa, dan kemudahan pengembangan.
  • Electron tetap relevan sebagai platform matang bagi pengembang yang menghindari pemrograman Rust.

Proses pembangunan aplikasi mengungkapkan kendala stabilitas pada Deno, yang cenderung mematikan proses saat jendela aplikasi disembunyikan. Electro-Bun juga dinilai kurang optimal karena dependensi internal yang membengkak. Bagi kebutuhan praktis, Tauri direkomendasikan untuk efisiensi, sementara Electron disarankan untuk proyek yang mengutamakan kematangan ekosistem TypeScript.

커뮤니티 글

모든 글 보기