web-dev-qa-db-ja.com

プログレッシブウェブアプリ(PWA)とエレクトロンとブラウザの拡張機能

この質問の背景は、ユーザーが後で実行できるモジュールを構築できるツールと呼ばれるものに取り組んできたことです。それは小さなWebページから始まり、昨年からデスクトップアプリケーションにより近いものに成長しました。しかし、この時点では、まだhtml、css、jsファイルのセットにすぎません。

私はエレクトロンのようなものを使用して、インストール可能なデスクトップアプリケーションとしてパッケージ化することを検討しましたが、そのアプローチは好きではなく、すべてがオフラインで行われるため、プログレッシブWebアプリのようなものに固執する方が良いと思いました。

私はWeb拡張機能でのみ利用可能なAPIにアクセスしたかったので、それらについてのMDN Webドキュメントを少し読んでいて、PWAと、ブラウザなどで他のWebページがどのように表示および使用されるかを変更するのではなく、独自のページ/プログラムを実行する拡張ページ。

アプリをオフラインで動作させ、デスクトップアプリのように動作させたい場合、ブラウザ拡張にすることの欠点は何ですか?ブラウザ拡張機能よりもPWAに関する情報に多く出くわしたので、拡張機能はこの方法では使用しないでください。

利点には、より多くのAPIへのアクセスが含まれ、独自のアイコンでブラウザにインストールされ、拡張ページのウィンドウがブラウザ内で実行されていないように変更される可能性があります。

私はstackoverflowを使い始めたばかりですが、事実ではなく議論の余地がある、または意見を求めていると見なされるため、質問が閉じられる場合があることに気づきました。より具体的には、それぞれの長所と短所、および/またはアプローチを選択する際に考慮すべき決定ポイントを理解するのを手伝っていただけませんか?ありがとうございました。

回答/コメントへの応答

質問にお答えいただきありがとうございます。電子を含めるために質問を拡張することは避けたいものであり、私はすでに広範囲にわたって検討し、それについて別の議論を開始したくないと述べる目的でのみ、質問でそれを言及しました。私の質問は、PWAとブラウザ拡張のみについてです。

この質問は、私のアプリケーションの詳細にもあまり関係がありません。 PWAとしてすでに存在している可能性があります。問題は、アプリが既にPWAとして存在できる場合、それをブラウザー拡張機能にすることの「悪い点」とは何か、そうでない理由です。 PWAで利用できるよりも多くのAPIにアクセスし、ブラウザにインストールすることで「ホーム」になり、PWAよりも優れた用語の欠如により、拡張機能を提供しているように見えます。

ブラウザー拡張機能とは何かに関するMDN Webドキュメントの説明には、スタンドアロンゲームが含まれていますが、ブラウジングエクスペリエンスに統合されているゲームを促進しているようです。私はゲームを構築していませんが、スタンドアロンツールである拡張機能の何が問題になるのか知りたいと思っています。

あるコメント者は、それは可能であったとしても、ブラウジングエクスペリエンスを強化するためだけに拡張が行われたため、実行されるべきではないと感じているようです。それは正しい見方かもしれません。しかし、その一方で、ブラウザーメニューのないウィンドウでアプリを開き(サイトの全画面を実行するなど)、ダウンロードAPIにアクセスできるようにするアイコンをブラウザー内に配置するというアイデアに少し似ています。それは私のアプリのユーザーにより良い体験を与えるでしょう。

ただし、これが拡張機能に対して行われたことではなく、歴史的にどのように使用されてきたかに加えて、そうしない理由は他にもあるかもしれません。それはルールに違反しているのでしょうか、後で失敗するように設定しているのでしょうか?または、単に既存の機能の別の使用法を見つけることですか。

そのように聞こえても失礼なことをしようとしているのではなく、私の質問をより明確にしたかっただけです。ありがとうございました。

9
Gary

ブラウザ拡張機能-これらは基本的に、ユーザーのブラウジング体験を拡張および強化するために使用されます。 Adblockerについて考えてください。それ自体は役に立ちません。ただし、他のサイトにアクセスしたときに追加をブロックするのに役立ちます。スクリーンショットを取るためのスクリーンショット拡張機能。アクセスしたページの色を反転させるダークテーマ拡張。

PWA-PWAアプリがchromeアプリに置き換わります。PWAはすべての主要なデスクトップOSおよびモバイルOSのデスクトップにインストールできます。オフラインでも機能します。ハードウェアアクセスの観点からできることは、ユーザーのブラウザーのバージョンによって異なります。同じです ここでチェック 。Webアプリのすべての制限はそのまま残ります。

Electron-ネイティブレイヤー(種類!)でラップされたWebアプリです。これはオフラインでも機能します。事実、すべてのHTML/CSS/JSコンポーネントがElectronに組み込まれているため、最初にオフラインになり、APIにアクセスして、PWAが機能的に実行できるすべてのことを実行できます。 ElectronはPWAとは主に、ビルド、配布、および展開の方法が異なります。 Atomエディター、ビジュアルコードエディター、Slackは、HTML/CSS/JSを使用して構築され、Electronを使用してパックされた有名なツールの一部です。

ユーザーマシンのPWA機能はユーザーのブラウザーバージョンによって決まりますが、Electronアプリには独自のランタイムが組み込まれています。したがって、ユーザーのマシンに依存しません。おそらく、どれを選択するかを決定する際に検討したい重要な点です。

アプリで達成/実行しようとしていることをより具体的にする必要があります。あなたが言及したのは、「ユーザーが後で実行できるモジュールを構築できるツール」だけです。それはまったく洞察を与えません。

13
Anand