web-dev-qa-db-ja.com

プログレッシブWebアプリとネイティブアプリの違い、およびその逆の機能

2015年、GoogleはAndroid向けWebアプリ開発の新しいアプローチを発表しました。 プログレッシブWebアプリ 。ネイティブアプリケーションのように見え、カメラや加速度計のようなデバイスのハードウェアを使用し、プッシュ通知を受信し、ランチャーアイコンを持ち、オフラインで作業し、ローカルデータを保存するなどのアプリケーションを作成できます。

Androidでは、ネイティブアプリがどんな機能を提供し、プログレッシブWebアプリではサポートされていません。

105
Michael

TL; DR-2017年2月現在、プログレッシブWebアプリは十分強力なプラットフォームです TwitterはすべてのモバイルWebトラフィックをReact PWAに移動しました

2016年8月現在、プログレッシブWebアプリは、一般的に考えられているよりも多くのハードウェアアクセスを実際に提供しています。 AndroidのChrome 52安定版の whatwebcando.today のスクリーンショットを次に示します。

What Web Can Do Today - Chrome 52 on Android

ハードウェアアクセスに含まれるもの

今後のハードウェアアクセス

これらの機能は実装されているか、一部のブラウザーで既に機能しています。

注意すべきもう1つの重要な点は、 Origin Trials Framework( Chromeで実装 )により、メーカーは標準化プロセスを経ることなくハードウェア(またはソフトウェア)機能を公開およびテストできることです。 。たとえば、電話メーカーは、圧力センサーの値を読み取るためのAPIを公開し、それを調整して、W3Cへの検討のために送信できます。

ハードウェアアクセスに加えて、ネイティブアプリで従来使用されていたソフトウェア機能もあり、現在はWebアプリで使用できます。

PWAでも使用できる従来のネイティブ機能

これらの機能は多くのユースケースに対応しており、最近では多くの一般的なネイティブアプリをPWAに書き換えることができます。たとえば、Slackを取り上げます。そのオープンソースの代替、 Rocket.Chat、PWAバージョンを構築しています 。その他のPWAデモについては、 https://pwa.rocks をご覧ください。

PWAに搭載されるネイティブのような機能

ネイティブAndroid機能 PWAではまだ利用できません

  • 指紋センサーへのアクセス( 開発中
  • 連絡先、カレンダー、ブラウザのブックマークへのアクセス(これらへのアクセスの欠如は、プライバシーに配慮したユーザーによって 機能 として表示される可能性があります)
  • アラーム
  • テレフォニー機能-SMSまたは通話の傍受、SMS/MMSの送信、ユーザーの電話番号の取得、ボイスメールの読み取り、ダイヤラーダイアログなしで電話をかける
  • 一部のハードウェア機能およびセンサーへの低レベルアクセス:懐中電灯、大気圧センサー
  • システムアクセス:タスク管理、システム設定の変更、ログ

プログレッシブWebアプリは、ネイティブアプリにはない機能を提供します

  • 検出可能性-プログレッシブWebアプリのコンテンツは検索エンジンで簡単に見つけることができますが、StackOverflowのようなコンテンツ中心のネイティブアプリはアプリストアの検索結果に表示されません「pwa vs. native」など、アクセスを提供するコンテンツの場合。これは、Redditのようなコミュニティにとって問題です。Redditは、多数のサブコミュニティを個々の「アプリ」としてアプリストアに公開することはできません。
  • リンク可能性-任意のページ/画面に直接リンクを設定でき、簡単に共有できます
  • bookmarkability-アプリのビューに直接アクセスするためにそのリンクを保存します
  • 常に新鮮-アプリストアを経由して更新をプッシュする必要はありません
  • ユニバーサルアクセス-アプリストアの対象外 時々任意のポリシー または(意図しない) 地理的制限
  • 大規模なデータの節約、インターネットアクセスが高価または低速である新興市場では非常に重要です。たとえば、eコマースWebサイトKonga PWAに移行することにより、最初のロードのデータ使用量を92%削減
  • 低分布の摩擦-プログレッシブWebアプリがオンラインの場合、Android(およびその他のモバイル)ユーザーは既にアクセス可能です。

最後の注意:PWAは、デスクトップとほとんどのモバイルデバイスで同じコードベースで実行されます。デスクトップ環境(ChromeOS、および later MacおよびWindows)では、他のアプリと同じ方法で起動され、通常のアプリウィンドウ(ブラウザータブなし)で実行されます。

189
Dan Dascalescu

ネイティブアプリケーションの主な利点は、プラットフォームが提供できるすべてのネイティブAPI(連絡先、カメラのフラッシュ、SMS、テレフォニー、ネットワーク、bluetooth、センサー、rawソケットなど)にアクセスできることですが、プログレッシブWebアプリケーションは(まだ)できないことです。標準Web機能によって制約を受けるためです。

プログレッシブWebアプリケーションの目標は、これらの機能を拡張して最も重要なケースをカバーすることです。この気分で、 Progressive Web Apps:私たちの魂を失うことなくタブをエスケープする を見てください。ここで、プログレッシブWebアプリケーションが提供すべきもののリストを見つけることができます。

  • レスポンシブ:あらゆるフォームファクタにフィット
  • コネクティビティに依存しない:Service Workerをオフラインで使用できるようにする
  • アプリのようなインタラクション:Shell + Contentアプリケーションモデルを採用してアプリのナビゲーションとインタラクションを作成する
  • フレッシュ:Service Workerのアップデートプロセスのおかげで、常に最新の状態になります。
  • Safe:TLS(Service Workerの要件)を介して提供され、スヌーピングを防止します。
  • 発見可能:W3CマニフェストとService Workerの登録範囲のおかげで検索エンジンがそれらを見つけることができるため、「アプリケーション」として識別可能
  • 再エンゲージ可能:OSの再エンゲージメントUIにアクセスできます。例えばプッシュ通知
  • インストール可能:ブラウザから提供されるプロンプトを通してホーム画面に移動し、ユーザーがアプリストアの煩わしさなしに最も便利だと思うアプリを「保存」できるようにします。
  • リンク可能:摩擦がなく、インストールも簡単で、共有が簡単であることを意味します。 URLの社会的力が重要です。

これらの点から、linkableは、ネイティブアプリケーションによってOpen Webからインポートされた最初の特性の1つです モバイルディープリンク =。

それはのいずれかを表すとしてしかし、特別な言及は、コンボ新鮮な+インストール可能に値するネイティブの選択肢に対するプラットフォームとしてのWebの主な利点。ここでインストール可能はホーム画面に表示されることを意味します。ダウンロードやインストールの段階に合格する必要があるという意味ではありません。閲覧中にURLを開くかサービスを見つけると、それが完了します。 ホーム画面に表示されます

Freshは、通常のWebがどのように機能するかを示し、即時のロードとシームレスな更新を提供します。 YouTubeのWebからアップデートをインストールするように求められることはありません。アップデートは展開されており、次回アクセスしたときに消費されます。

あなたが違いを求めていたので、残りのポイントの利点について私は話していません、そして、例えば、再エンゲージメントはネイティブサービスがすでにプッシュサービスと通知を通して持っていて、そして今ウェブアプリケーションが追いついたものです。

他の関連した重要な質問はどのプラットフォームがあなたのニーズにより適しているかということです。特別なハードウェア機能にアクセスしていないのであれば、Webで十分であり、市場、独自のエコシステムから自由なWebを選択することで、ある程度のユビキタスと相互運用性を保証できます。 .

最後に、Chrome搭載の携帯から www.flipkart.com を参照することをお勧めします。それはかなり素晴らしいです:バグ、スムーズなナビゲーション、アプリのような感覚。オフラインにしても機能し続けます。その記事の真の実例です。ホーム画面にアプリを追加すると、次にそれを開いたときに、エクスペリエンスはさらに良くなります。

あなたは Firefox OS を見てみることができます---同様に より多くのプラットフォームAPI を標準的なウェブに持って来ることの例(多かれ少なかれ成功を収めて)。

12
Salva