• Skip to main content
  • Skip to primary sidebar
  • ホーム
  • お問い合わせ

ハイパー仕事し隊

思い立った吉日!イロイロ試してオンリーワンの起業家を目指してます!

現在の場所:ホーム / ウェブアプリ関連 / プログレッシブウェブアプリ (PWA) を作成する前に知っておきたいこと

プログレッシブウェブアプリ (PWA) を作成する前に知っておきたいこと

2018年8月5日

No Internet Connection

もうこの表示をみることはなくなるかもしれないです。

これまで Apple 製品でのサポートがされていなかったために、あまり日の目を見ない生活を送っていた PWA 技術。

ですが、iOS 11.3 でやっとサポートされ、今後ますます注目をあびるであろう技術となっています。

ただ、調べていくうちに「ネイティブアプリを作成する意味がなる!」というわけにはいかないことが分かりました。

結論

やはり PWA は良い仕組みである。

ただ、アプリによっては相性の合わないケースもあるので、細かく調査が必要。

  • 相性の合うケース
    • コンテンツ内容があまりかわらないサイト (例: ブログ)
    • 情報発信がメインのサイト (例:ニュースサイト)
  • 相性の合わないケース
    • リアルタイム性の強いゲーム

PWA 化するには、既に公開されているサイトように PWA に必要なファイル作成すれば、すぐに実装できる。

「Generate your Progressive Web App」 を使えば、その必要なファイルをちゃちゃっと作成してくれて、ひとまずの PWA 化はできる。

PWA とは?

PWA = Progressive Web App (プログレッシブ ウェブ アプリ) の略です。

https://pwa.rocks/ (今はもうリンク切れしてます.. orz) から実際のアプリを見ることができます。 (iOS の方は、「ブックマーク追加」をせずに「ホームスクリーンを追加」を選択してください。)

そして、こちらがよく言われている、メリット・デメリットがこちら。

PWA を利用するメリットは?

  • インストール不要
    • アプリを探して、認証して、インストールして。。。というステップが不要
    • 「ブックマークを登録する」代わりに「アプリを登録する」だけなので、ユーザーにとって気軽に利用できる
    • それなのに、ホームスクリーンにアイコンと置いて、起動できるようになる
  • オフラインでも動作する
  • コンテンツに変更が少ない場合は、ネット接続不要 or 最小限に行い爆速表示する
    • 読み込み時間の長さが、ビジネスにダイレクトに影響するこの時代。早い表示はマストですよね。
  • スマホ・タブレットからは、ネイティブアプリと同じように使える
    • 言い方を変えれば、見た目や操作感はネイティブアプリと PWA との違いがわからない
    • プッシュ通知もできる

PWA を利用するデメリットは?

あまりないように思いますが、あえて言うならこれでしょうか?

  • キャッシュが残る

利用者的には、アプリがオフラインでも動作するので、いま見ているのが「最新の情報」と思ってしまい、勘違いをする可能性があります。

また、開発者的には、開発時に意識していないとキャッシュデータを見ているのか、コード変更後のデータを見ているのか、をこんがらがって、間違った判断をする可能性があります。

とはいっても、いくらでも対応できるので「デメリットになりうる」が正確な表現かもしれないですね。

ほかにも

  • サポートしていないブラウザもある

というのもありますが、iOS でのサポートがされた今、あまり意識しなくて良いかもしれないですね。

Supported Browser

(参照: https://caniuse.com/#feat=serviceworkers)

ま、徐々に全てのブラウザでサポートされるでしょ。。(楽観的。笑)

PWA 化に必要なもの

それでは、PWA に必要なものを確認していきましょ!

  1. HTTPS 接続 (開発時は localhost が使える)
  2. Manifesto ファイル
    • いわゆる設定ファイル。JSON形式で定義。
    • 例: アプリ名、説明、背景色、アイコンなどが定義可
    • 参考: 「Web App Manifest」
  3. Service Worker
    • 動作を定義するファイルで、Javascript で記述
    • 「プロキシ」という表現もされ、ネットワークリクエストをインターセプトして、応答をする

基本的には上記の 3 つだけです。

細かい部分は Google から 「PWA Checklist」 から確認できます。

PWA で気をつけること

ネイティブアプリの「ように」動作するだけで、ネイティブアプリではありません。

特に iOS では、「Progressive Web Apps on iOS are here 」にあるように何かと制限があるようです。

以下抜粋。

  1. 保存できる容量は 50 MB まで
  2. 数週間利用がなければ、キャッシュは削除される
  3. Bluetooth や Face ID、Siri との連携などアクセスできない機能がある
  4. バックグラウンドでコード実行はできない
  5. iPad ではスプリットビューが使えない
  6. プッシュ通知が使えない
  7. アプリからアプリに移動ため際に表示する、複数アプリの「現在の画面」が表示できない (= 真っ白になる)
  8. セッション間の state が保持できないの (例: 2 段階認証のために PWA アプリを離れると、state が削除される)

アプリの性質によっては、PWA 化できる・できないがありそうですね。

カテゴリー: ウェブアプリ関連
タグ: pwa

最初のサイドバー

簡単な自己紹介

ごく普通の 30 代サラリーマンです。世界を旅しながらの生活が目標!!
IT 全般に興味あり: Python (Flask, Django) / PHP (Laravel, Wordpress) / Golang / AWS / Network Security.
Read More…

サイト内検索

最近の投稿

  • 【VS Code プラグイン】Postman より便利!? Rest Client をオススメする理由
  • MySQL と phpMyAdmin を Docker Compose で作って、Python から接続する
  • Windows10 上の Ubuntu から “curl localhost” を実行すると “Connection refused” になる原因
  • リダイレクトの仕組み知ってる?Flask で調べるてみるのだ。
  • Apple 独自の 検索エンジンで何が変わるのか

アーカイブ

  • 2021年3月
  • 2021年1月
  • 2020年10月
  • 2019年3月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年5月
  • 2018年4月

タグ

amazon cloudfront amazon s3 aws coursera css django docker flask fullstack gcp github hawaii life in USA linux mongodb mysql postgresql pwa python sqlite vagrant

Contact
Privacy Policy and Term of Use
Copyright © 2025 · All rights reserved.