2015年、GoogleはAndroid向けWebアプリ開発の新しいアプローチを発表しました。 プログレッシブWebアプリ 。ネイティブアプリケーションのように見え、カメラや加速度計のようなデバイスのハードウェアを使用し、プッシュ通知を受信し、ランチャーアイコンを持ち、オフラインで作業し、ローカルデータを保存するなどのアプリケーションを作成できます。
Androidでは、ネイティブアプリがどんな機能を提供し、プログレッシブWebアプリではサポートされていません。
TL; DR-2017年2月現在、プログレッシブWebアプリは十分強力なプラットフォームです TwitterはすべてのモバイルWebトラフィックをReact PWAに移動しました 。
2016年8月現在、プログレッシブWebアプリは、一般的に考えられているよりも多くのハードウェアアクセスを実際に提供しています。 AndroidのChrome 52安定版の whatwebcando.today のスクリーンショットを次に示します。
これらの機能は実装されているか、一部のブラウザーで既に機能しています。
注意すべきもう1つの重要な点は、 Origin Trials Framework( Chromeで実装 )により、メーカーは標準化プロセスを経ることなくハードウェア(またはソフトウェア)機能を公開およびテストできることです。 。たとえば、電話メーカーは、圧力センサーの値を読み取るためのAPIを公開し、それを調整して、W3Cへの検討のために送信できます。
ハードウェアアクセスに加えて、ネイティブアプリで従来使用されていたソフトウェア機能もあり、現在はWebアプリで使用できます。
hTML5を介したハードウェアアクセラレーション2D/3Dグラフィックス Canvas または WebGL - HTML5 Canvasデモ 、 WebGLサイト の一部をチェック=または three.jsライブラリ 。 nityクロスプラットフォームゲームエンジン ネイティブとWebGLレンダリングパフォーマンスの比較の2014ベンチマーク、および 結論
「最も重要なことは、ネイティブコードよりもWebGLが大幅に遅い領域がまだありますが、全体としてはかなりまともなパフォーマンスが期待できることであり、これは将来的にのみ良くなる可能性があります。」
これらの機能は多くのユースケースに対応しており、最近では多くの一般的なネイティブアプリをPWAに書き換えることができます。たとえば、Slackを取り上げます。そのオープンソースの代替、 Rocket.Chat、PWAバージョンを構築しています 。その他のPWAデモについては、 https://pwa.rocks をご覧ください。
最後の注意:PWAは、デスクトップとほとんどのモバイルデバイスで同じコードベースで実行されます。デスクトップ環境(ChromeOS、および later MacおよびWindows)では、他のアプリと同じ方法で起動され、通常のアプリウィンドウ(ブラウザータブなし)で実行されます。
ネイティブアプリケーションの主な利点は、プラットフォームが提供できるすべてのネイティブ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 を標準的なウェブに持って来ることの例(多かれ少なかれ成功を収めて)。