多くの新しいデスクトップアプリケーションがWebサイトに非常によく似ていることに気づきましたか?それはあなたの想像力ではありません。
TrelloからSlackまで、WordPress.comからGithubまで、いわゆるデスクトップアプリケーションが、通知、ファイルシステムアクセス、メニューなどのいくつかのネイティブ機能を備えたWebサイトをバンドルすることがますます一般的になっています。これを可能にする最も一般的な技術は、 電子 、そしてそれはあなたが疑うことさえないかもしれないいくつかのアプリケーションによって使用されています チャットアプリケーションDiscord およびMicrosoftの VisualStudioコード 。
Electronを使用すると、開発者はWindows、macOS、およびLinuxでアプリを同時にリリースすることが簡単になりますが、ユーザーには欠点があります。一つには、電子アプリケーションは巨大です。チャットアプリケーションであるSlackは、私のMacで237 MBのハードドライブスペースを占有し、メモリ消費量も少なくありません。これらすべてのリソースを何が占めているのでしょうか。そして、なぜ開発者はそれほど非効率的なものを使用しているのですか?
Electronアプリは非常に簡単に作成できます
デスクトップアプリケーションは、特にクロスプラットフォームにしたい場合は作成が困難です。たとえば、ファイルシステムへのアクセスはWindowsとLinuxでは動作が異なり、通知はmacOSとWindowsでは動作が異なります。つまり、3つすべてのデスクトップオペレーティングシステム(またはそのうちの2つ)用のアプリケーションを作成したい場合は、相互に移植するときに多くのコードを書き直す必要があります。
Electronは、3つの主要なデスクトップオペレーティングシステムすべてで動作する単一のプラットフォームを提供することにより、これを「解決」します。つまり、開発者は通知などのコードを1回記述すれば、すべてのオペレーティングシステムでネイティブに機能することを期待できます。開発者にとってはさらに優れています。すべてをJavascript、HTML、CSSを使用して構築できます。これは、Web用にコーディングする人なら誰でもよく知っているテクノロジーです。
Electronアプリにはかなり多くのクロムが付属しています
これはどのように可能ですか?一部には、すべてのElectronアプリに完全なWebブラウザーがバンドルされているためです:Chromium、 GoogleChromeのオープンソースバージョン 。これは、開発者がすべてのシステムで期待するとおりにすべてが正確に動作することを保証するために、プラットフォーム固有の手順とともにバンドルされています。そのため、デスクトップバージョンのSlackは200MBを超えるハードドライブスペースを占有します。Chromeのほとんどはそこにバンドルされています。
実行するすべてのElectronアプリは、多かれ少なかれChromeの完全なインスタンスです。ブロガーとしてジョセフジェントル 指摘した 、これはほとんど理想的ではありません:
Slackは、別のオペレーティングシステムVM(chrome)内で実行される小さなJavaScriptプログラムと考えることができます。これは、基本的にIRCでチャットするために実行する必要があります。実際のクロムを開いている場合でも、各エレクトロンアプリはVM全体の独自の追加コピーを実行します。
そうですね、ユーザーには欠点があります。まず、ダウンロードするすべてのElectronアプリケーションはChromiumの大部分をバンドルしており、実行するすべてのアプリケーションはそのコードのかなりの部分を実行しています。ここでは、ネイティブアプリケーションのようにリソースを共有することはありません。つまり、Electronアプリは、プラットフォームを特に念頭に置いて開発されたアプリケーションよりも多くのハードドライブスペースとメモリを消費します。パフォーマンスが本当に気になるものである場合は、Electronアプリケーションを避けたいと思うかもしれません。
待って、それで電子は良いのか悪いのか?
この時点で、コンピューターは非常に強力であるため、ほとんどのユーザーは、Electronアプリケーションの効率がいかに低いかに気付くことさえありません。実際、大多数はエレクトロンについて聞いたことがありません。私の同僚のほとんどはそうではなく、彼らは皆毎日Slackを使用しています。多くの人がTrelloのデスクトップバージョンが出てくるのを見て興奮していましたが、それがElectronアプリだとは思いもしませんでした。
そして、これらのアプリは、実際にはWebサイトよりもオペレーティングシステムとの統合が優れています。彼らは自分の窓に住んでいます。これらは、優れたキーボードショートカット、ネイティブ通知、およびブラウザだけでは同じ方法では実行できないその他の機能を提供します。
また、Electronが存在しなくても、Slack、Trello、WordPress.comなどのアプリケーションがデスクトップバージョンを提供せず、代わりにモバイルバージョンとブラウザバージョンに焦点を当てることは間違いありません。したがって、問題はエレクトロンが悪いかどうかではありません。 Electronアプリケーションが何もないよりも優れているかどうかです。はいと言いたいのですが、合理的な人々は反対することができます。 (そしてねえ、それらの人々のために、常にウェブ版があります。)