GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana kami membangun aplikasi desktop Linux dengan Electron

Tutanota adalah layanan email open source yang aman yang telah tersedia sebagai aplikasi untuk browser, iOS, dan Android. Kode klien diterbitkan di bawah GPLv3 dan aplikasi Android tersedia di F-Droid untuk memungkinkan semua orang menggunakan versi yang sepenuhnya bebas Google.

Karena Tutanota berfokus pada open source dan berkembang pada klien Linux, kami ingin merilis aplikasi desktop untuk Linux dan platform lainnya. Sebagai tim kecil, kami dengan cepat mengesampingkan pembuatan aplikasi asli untuk Linux, Windows, dan MacOS dan memutuskan untuk mengadaptasi aplikasi kami menggunakan Electron.

Terminal Linux

  • 7 emulator terminal teratas untuk Linux
  • 10 alat baris perintah untuk analisis data di Linux
  • Unduh Sekarang:lembar contekan SSH
  • Lembar contekan perintah Linux tingkat lanjut
  • Tutorial baris perintah Linux

Electron adalah pilihan utama bagi siapa saja yang ingin mengirimkan aplikasi lintas platform yang konsisten secara visual, dengan cepat—terutama jika sudah ada aplikasi web yang perlu dibebaskan dari belenggu API browser. Kasus Tutanota persis seperti itu.

Tutanota didasarkan pada SystemJS dan Mithril dan bertujuan untuk menawarkan komunikasi email yang sederhana dan aman untuk semua orang. Karena itu, ia harus menyediakan banyak fitur standar yang diharapkan pengguna dari klien email mana pun.

Beberapa fitur ini, seperti pemberitahuan push dasar, pencarian teks dan kontak, dan dukungan untuk autentikasi dua faktor mudah ditawarkan di browser berkat API dan standar modern. Fitur lain (seperti pencadangan otomatis atau dukungan IMAP tanpa melibatkan server kami) memerlukan akses yang tidak terlalu dibatasi ke sumber daya sistem, persis seperti yang disediakan oleh kerangka kerja Electron.

Sementara beberapa orang mengkritik Electron sebagai "hanya pembungkus dasar", ia memiliki manfaat yang jelas:

  • Electron memungkinkan Anda untuk mengadaptasi aplikasi web dengan cepat untuk desktop Linux, Windows, dan MacOS. Faktanya, sebagian besar aplikasi desktop Linux dibuat dengan Electron.
  • Electron memungkinkan Anda dengan mudah membawa klien desktop ke fitur paritas dengan aplikasi web.
  • Setelah Anda memublikasikan aplikasi desktop, Anda dapat menggunakan kapasitas pengembangan gratis untuk menambahkan fitur khusus desktop yang meningkatkan kegunaan dan keamanan.
  • Dan yang tak kalah pentingnya, ini adalah cara yang bagus untuk membuat aplikasi terasa asli dan terintegrasi ke dalam sistem pengguna sambil mempertahankan identitasnya.

Memenuhi kebutuhan pengguna

Di Tutanota, kami tidak bergantung pada uang investor besar, melainkan kami adalah proyek berbasis komunitas. Kami mengembangkan tim kami secara organik berdasarkan peningkatan jumlah pengguna yang meningkatkan ke paket berbayar layanan freemium kami. Mendengarkan apa yang diinginkan pengguna tidak hanya penting bagi kami, tetapi juga penting untuk kesuksesan kami.

Menawarkan klien desktop adalah fitur yang paling diinginkan pengguna di Tutanota, dan kami bangga bahwa kami sekarang dapat menawarkan klien desktop beta gratis untuk semua pengguna kami. (Kami juga menerapkan fitur lain yang sangat diminta—pencarian pada data terenkripsi—tapi itu topik untuk lain waktu.)

Kami menyukai gagasan untuk memberikan versi Tutanota yang ditandatangani kepada pengguna dan mengaktifkan fungsi yang tidak mungkin dilakukan di browser, seperti pemberitahuan push melalui proses latar belakang. Sekarang kami berencana untuk menambahkan lebih banyak fitur khusus desktop, seperti dukungan IMAP tanpa bergantung pada server kami untuk bertindak sebagai proxy, pencadangan otomatis, dan ketersediaan offline.

Kami memilih Electron karena kombinasi Chromium dan Node.js berjanji paling cocok untuk tim pengembangan kecil kami, karena hanya memerlukan sedikit perubahan pada aplikasi web kami. Sangat membantu untuk menggunakan API browser untuk semuanya saat kami memulai, perlahan-lahan mengganti komponen tersebut dengan versi yang lebih asli saat kami melanjutkan. Pendekatan ini sangat berguna dengan unduhan lampiran dan pemberitahuan.

Menyetel keamanan

Kami menyadari bahwa beberapa orang menyebutkan masalah keamanan dengan Electron, tetapi kami menemukan opsi Electron untuk akses fine-tuning di aplikasi web cukup memuaskan. Anda dapat menggunakan sumber daya seperti dokumentasi keamanan Electron dan Daftar Periksa Keamanan Elektron Luca Carettoni untuk membantu mencegah bencana besar dengan konten tidak tepercaya di aplikasi web Anda.

Mencapai paritas fitur

Klien web Tutanota dibangun dari awal dengan protokol yang solid untuk komunikasi antarproses. Kami menggunakan pekerja web untuk menjaga antarmuka pengguna (UI) tetap responsif saat mengenkripsi dan meminta data. Ini berguna saat kami mulai menerapkan aplikasi seluler kami, yang menggunakan protokol yang sama untuk berkomunikasi antara bagian asli dan tampilan web.

Itulah mengapa ketika kami mulai membangun klien desktop, sudah ada banyak binding untuk hal-hal seperti pemberitahuan push asli, membuka kotak surat, dan bekerja dengan sistem file, jadi hanya sisi asli (simpul) yang harus diterapkan.

Kenyamanan lainnya adalah proses pembuatan kami menggunakan transpiler Babel, yang memungkinkan kami untuk menulis seluruh basis kode dalam JavaScript ES6 modern dan modul utilitas mix-and-match antara lingkungan yang berbeda. Ini memungkinkan kami untuk dengan cepat mengadaptasi kode untuk aplikasi desktop berbasis Electron. Namun, kami menghadapi beberapa tantangan.

Mengatasi tantangan

Sementara Electron memungkinkan kita untuk berintegrasi dengan lingkungan desktop platform yang berbeda dengan cukup mudah, Anda tidak dapat meremehkan investasi waktu untuk mendapatkan semuanya dengan benar! Pada akhirnya, hal-hal kecil inilah yang menghabiskan lebih banyak waktu daripada yang kami harapkan, tetapi juga penting untuk menyelesaikan proyek klien desktop.

Tempat di mana kode khusus platform diperlukan menyebabkan sebagian besar gesekan:

  • Manajemen jendela dan baki, misalnya, masih ditangani dengan cara yang agak berbeda di ketiga platform.
  • Mendaftarkan Tutanota sebagai program email default dan menyiapkan autostart diperlukan untuk masuk ke Windows Registry sambil memastikan untuk meminta akses admin kepada pengguna dengan cara yang kompatibel dengan UAC.
  • Kami perlu menggunakan API Electron untuk pintasan dan menu untuk menawarkan fitur standar seperti salin, tempel, batalkan, dan ulangi.

Proses ini sedikit diperumit oleh ekspektasi pengguna terhadap perilaku aplikasi tertentu yang terkadang tidak kompatibel secara langsung pada platform yang berbeda. Membuat ketiga versi terasa asli memerlukan beberapa iterasi dan bahkan beberapa tambahan sederhana pada aplikasi web untuk menawarkan penelusuran teks yang mirip dengan yang ada di browser.

Menutup

Pengalaman kami dengan Electron sebagian besar positif, dan kami menyelesaikan proyek dalam waktu kurang dari empat bulan. Meskipun ada beberapa fitur yang memakan waktu, kami terkejut dengan kemudahan yang kami gunakan untuk mengirimkan versi beta dari klien desktop Tutanota untuk Linux. Jika Anda tertarik, Anda dapat mempelajari kode sumbernya di GitHub.


Linux
  1. Cara membuka Appimage di Linux

  2. Cara menginstal GNS3 di Desktop Linux

  3. Cara memutakhirkan Kernel di Desktop Linux

  1. Cara menginstal Anbox di Desktop Linux

  2. Linux – Bagaimana Cara Autologin Ke Desktop Dengan Systemd?

  3. Linux – Bagaimana Mengintegrasikan Suara Dengan Acara Desktop?

  1. Tingkatkan produktivitas Anda dengan desktop Linux yang ringan ini

  2. Cara memperluas fungsionalitas desktop Linux Anda dengan PlexyDesk

  3. Bagaimana cara mengimplementasikan aplikasi elektron pembaruan otomatis di Linux?