KumikiEN
Blog一覧へ
WRITING

PWAのオフライン体験設計

通信状態を体験に含める

PWAのオフライン対応は、単にキャッシュを置く作業ではありません。利用者が通信状態を意識しなくても、いま何が見えていて、どこまで操作できて、いつ同期されるのかを理解できる体験設計が必要です。

読むデータと書くデータ

まず分けて考えたいのは、読むためのデータと書くためのデータです。読む情報は古くても価値がある場合が多い一方で、入力や更新は競合や失敗の扱いが必要になります。保存できたように見えるのに実際は失われる、という状態を避けるため、ローカル保存と同期待ちの表示を明確にします。

画面ごとに鮮度を決める

Service Worker の戦略も、画面ごとに変えるほうが自然です。トップや設定は安定したキャッシュでよく、天気や通知のように鮮度が大切な情報は、最後に取得できた時刻を合わせて見せます。技術選定より先に、利用者に許容される古さを決めておくと実装がぶれません。

復帰を作業の続きにする

復帰時のふるまいは、オフライン中の操作量に比例して丁寧にします。短いメッセージ、再試行、差分の確認を用意しておくと、失敗をエラーとして突き放さず、作業の続きとして扱えます。