PWA VS ネーティブアプリ
PWAとネーティブアプリについて、いい感じにプレゼンされている動画があったので、シェアしたいと思います。リスニングができなくても、パワポだけでおおよその内容は分かるかと思いますので、PWAに興味がある方は一度視聴されたら良いと思います。
目次
ネーティブアプリのメリット
ネーティブアプリがWEBに優っている項目は以下の3点です。
- 動作が速い
- 一貫したUIを
- オフラインでの動作
ネーティブアプリのデメリット
ネーティブアプリの開発者はいつも以下のことで悩まされてきました。
- iOSとandoroidで開発言語が異なる
- 開発コストが高い
- アプリストアでアップデートしないといけないので、バージョンの一貫性がない
PWAのメリット
- WEBと同じ技術(Javascript/JSON)が使用できる。
- ネーティブアプリと同様なことができる
- iOSとandoroidのように複数開発する必要がなく、全てのブラウザーで動くように一つのものを開発するだけで済む
何が改革(Progressive)なのか?
PWAは将来的に次のようなものをもたらすことができる。
- ブラウザの強化
- スピードやオフライン動作、一貫したUI
PWAは3ステップで実装できる
PWAは3ステップで実装ですることができます。
Step 1. manifest.json
manifest.jsonと呼ばれるアプリの情報をまとめたものを用意します。 manifest.jsonでは、アプリ名やアイコン、テーマカラーなどをjsonで設定できます。
{
"lang": "ja",
"name": "webapp name",
"short_name": "webapp name",
"icons": [{
"src": "/app-icon.png",
"sizes": "144x144",
"type": "image/png"
}],
"start_url": "https://example.com/",
"display": "standalone"
}
Step 2. headタグ
headタグにmanifest.jsonのリンクとナビバーの色を設定します。
<link rel="manifest" href="manifest.json"> <meta name="theme-color" content="#5cd65c">
Step 3. Service worker
Service workerを作成します。 Service workerはJavascriptで実装でき、ブラウザーとサーバーの中間を担うサーバー的な役割を持ち、キャッシュの管理を行います。
Service workerは キャッシュを表示して、バックグラウンドでキャッシュの更新を行うったり、 ネットワークが遅い時にキャッシュを利用したり、 事前に次に表示するページを読み込んだりするなど 様々な方法でキャッシュを活用することができます。
ガッチャ!
キャッシュの難易度 複数タブで開かれた時 オフライン時は、localhostで動作しているのと等しいこと
まとめ
PWSは以下の3点でネーティブアプリに優位性があります。
- WEBと同じ技術で開発ができる。
- 構築するのは、一つだけ
- Javascript!