Webアプリはオフラインでも使える?PWAで考えたい保存と送信の違い
電波が途切れても画面が開けるWebアプリがあります。ただし、画面を表示できることと、入力内容が相手に届いたことは別です。PWAのオフライン対応を例に、通信がないときにできることと、利用者へ伝えたい状態を整理します。
保存済みの情報を使えば、通信なしでも表示できる
PWAはProgressive Web Appの略で、Webの技術を使いながらアプリらしい体験を提供するものです。オフライン対応は実装できる機能の一つであり、PWAという名前だけで全機能が通信なしに使えるわけではありません。
MDNのオフライン動作の解説では、サービスワーカーという仕組みで通信を扱い、あらかじめ保存したページや画像などを返す方法を説明しています。保存して再利用するデータは「キャッシュ」と呼ばれます。
表示に必要な情報を端末に持っていれば、サーバーに接続できなくても読める部分があります。一方、まだ保存していない資料や、その場で更新された情報まで必ず読めるわけではありません。
「保存した」と「送信できた」を分ける
点検記録を入力する架空のアプリを考えてみましょう。地下の作業場で通信が切れても、入力を端末へ保存する設計なら、作業を続けられる可能性があります。ただし、その時点で事務所の担当者も記録を見られるとは限りません。
端末に残っている状態と、サーバーが受け付けた状態を分けて伝えることが、二重入力や送信忘れの予防につながると考えられます。次は本記事が提案する表示の整理例です。
表が見切れる場合は横にスクロールできます
状態 | 利用者に伝えたいこと |
|---|---|
端末に保存済み | この端末に残っているが、共有は終わっていない。 |
送信待ち | 通信が戻った後に送る内容がある。 |
送信完了 | サーバー側で受け付けたことを確認できた。 |
送信失敗 | 未送信の内容と、再試行・問い合わせの方法。 |
これらは特定のPWAが標準で備える表示ではありません。実際のアプリで、何を根拠に「完了」と表示するかを決める必要があります。
古い情報でも役立つ場面と、更新が欠かせない場面
MDNは、保存済みの情報を先に使う方式では速く返せる一方、古い情報を返す可能性があると説明しています。どの保存方法が適切かはアプリの用途によります。
設備の操作手順を読む場面と、現在の空き枠を見て予約する場面では、古い情報の意味が違います。操作手順でも改定があり得るため、保存した版や時点が分かると、現場で利用してよい情報かを確認する助けになります。
予約については、保存された画面で空いていても、通信が戻る前にほかの利用者が予約したかもしれません。オフラインで希望を記録することと、枠を確保することを同じ「予約完了」にしない設計が考えられます。
通信が戻った後まで試してみる
オフライン対応の確認は、機内モードで一度画面が開くかを見るだけでは終わりません。本記事では、初めて開くページ、保存済みのページ、入力中の切断、通信復帰後の送信を分けて試す方法を提案します。
別の端末で同じ記録が編集された場合や、送信ボタンを再び押した場合も、扱いを確認する候補です。バックグラウンドでの送信などはブラウザやOS、実装によって条件が異なるため、実際に使う環境で確かめる必要があります。
また、端末に記録が残るなら、共用端末での扱いやログアウト時の保存内容も検討対象です。オフラインで便利に使える範囲を決めるときに、何を端末へ残すかを一緒に整理しておくとよいでしょう。
まとめ
- オフライン対応では、保存済みの情報を使って表示や入力を続けられる場合があります。
- 端末への保存と、サーバーへの送信完了を分けて示すことが大切です。
- 情報の古さと通信復帰後の動作まで、実際の利用環境で確かめます。
利用者が迷わない完了表示はフォームの見直し方、利用を続けやすい設計はSaaSやアプリの継続利用でも説明しています。
