\r\n\r\n
Chromeはウェブだけでなく、ローカルアプリケーションも掌握しています。Windows、Mac、そしてLinuxで動作する多くのアプリケーションは、googlechromeのベースとなるChromeエンジン、時代遅れのChromeで構成されています。
Chromiumブラウザエンジンを利用したアプリケーションを開発する方法はいくつかあり、electronが最も有名ですが、その他にも多くのアプリケーションでCEF(Chromium embedded framework)が利用されています。
オンラインチャット? SlackはElectronで作られた人気のアプリです。EvernoteはCEFを、TrelloはElectronを使用しています。SpotifyもAmazon MusicもCEFを使っています。
GitHubのデスクトップ、Microsoft Teams、Skype、visualstudio code、Yammerはすべて電子アプリである。新しいXboxアプリのWindows 10も、Microsoft独自のUWP(Universal Windows Platform)ではなく、Electronで構築されている
PCゲームはネイティブアプリを使うことがほとんどですが、ランチャーや関連するチャットツールはそうではありません。DissonanceとTwitch.tvの使用e.Battle.net、Desura、Epic Games Launcher、GOG Galaxy、Uplay、そしてSteamもCEFを使っています。 EAのOriginクライアントはQt-WebEngineを使っており、これもChromiumコードを統合しています。
Wikipedia の Electron と CEF のアプリケーションの非常に不完全なリストを参照することで、Chromium を使用するアプリケーションの数を知ることができます。CrashPlan などのバックアップアプリケーション、Bitwarden などのパスワードマネージャ、Adobe Creative Cloud などのユーティリティ。
関連記事:電子申請とは何か、なぜ一般化するのか?
ElectronまたはCEFベースの各アプリケーションには、Chromiumの部分コピーが個別にバンドルされています。ElectronやCEFを使ったアプリケーションは、WebブラウザでのWebアプリケーションと似ていますが、効率が悪く、システム上でより多くのメモリを消費します。
あるChromeタブでGmailを開き、別のタブでFacebookを開いた場合、オペレーティングシステムはChromeを1つだけ実行する必要があります。しかし、2つの異なるElectronまたはCEFアプリケーションを実行する場合、オペレーティングシステムはそれぞれのアプリケーション用にElectronまたはCEFの別コピーを必要とします。
特に電子機器系のアプリケーションは、驚くほどメモリを食うことも珍しくありません。繰り返しになりますが、これらのアプリケーションはそれぞれ個別のChromiumファイルを含んでいるため、システム上で追加のスペースを必要とします。
Electronのセキュリティに関する文書では、そのコードが古いバージョンのChromiumをベースにしている理由を次のように説明しています。
「Electronはできるだけ早くChromiumの新バージョンをサポートするよう努力していますが、アップグレードは数十から数百のファイルを手作業で編集することになるため、開発者は大変な作業であることを認識しておく必要があります。今日のリソースや貢献度から考えると、ElectronはChromiumの最新バージョンではなく、数週間から数ヶ月遅れていることが多いでしょう。"
エレクトロンプロジェクトの新バージョンが作成された後も、エレクトロンアプリケーションを構築する開発者は、コードを取得し、エレクトロンアプリケーションに統合し、更新情報を送信する必要があります。
electronのドキュメントでは、信頼できないコードの表示を避け、主にローカルリソースや信頼できる安全なリモートコンテンツに依存するよう、開発者にアドバイスしています。そのため、多くの電子アプリケーションは、ウェブブラウザのように見えません。例えば、SlackはWeb技術を使ってチャットのインターフェースを提供していますが、リンクを1回クリックするとWebブラウザに移動します。
開発者がこれらのソリューションを好むのは、ほとんどの人がすでに慣れ親しんでいるウェブ技術を使用しているからです。Electronはホームページで "ウェブサイトが作れるなら、デスクトップアプリケーションも作れる "と豪語しています。
しかし、単純なウェブアプリケーションよりも強力です。電子アプリケーションは、ファイルシステムやその他のローカルなシステムリソースにアクセスすることができます。CEFのアプリケーションの多くは、Chromiumブラウザに組み込まれたネイティブアプリケーションです。例えば、Steamでは、ショップやコミュニティのインターフェイスを表示するために、ブラウザが埋め込まれています。
電子アプリケーションもChromiumなどクロスプラットフォームで、WebだけでなくWindows、Mac、LinuxでSlackのようなアプリケーションを動かすことができます。MicrosoftのEdgeやAppleのSafariの技術に依存している場合、開発者はクロスプラットフォームなアプリケーションを開発することができないのです。開発者は、アプリケーションを作って、それをどこでも走らせたいと考えています。これにより、各プラットフォーム向けにネイティブアプリを作成するのに比べ、多くの時間とリソースを節約することができます。
これらのChromiumベースのソリューションは、多くの点で従来のものに比べて改善されています。CEFの採用以前は、Steamはinternetexplorerを埋め込んでいました。Windows上の多くのアプリケーションも単にinternetexplorerのインターフェースを埋め込んでいましたが、Chromiumではより良くなっています。
エレクトロンやCEFなどの技術には、多くの利点がありますが、欠点もあります。プログレッシブWebアプリケーション(PWA)は、最新のWebアプリケーションをオフラインで動作させる方法を提供するため、いつか解決策を提供することができるかもしれません。しかし、ElectronやCEFとは異なり、PWAはバックグラウンドで標準的なウェブブラウザを使用します。また、Chromiumのコードを手動で更新してバンドルすることなく、Webブラウザ経由でインストールすることも可能です。
マイクロソフトがクロームベースのEdgeブラウザに移行する中、PWAがElectronにうまく対抗できるかどうかが注目されるところです。メモリ使用量が少なく、よりクリーンなソリューションであることは間違いありません。
関連:プログレッシブWebアプリケーションとは?