メモ書き
完全スタンドアローン
ネットワークの断線に耐えうるもの
考えられるシチュエーション
- ローカルのhtmlを
file://
で開いた時 - Electronアプリケーション
- すべてのリクエストがServiceWorkerでモックされた状態(初回アクセスは必要)
永続ストレージにもlocalStorageやIndexedDbを使う。
ネットワークを前提にしないので、アップデートが難しい(ネットワークを含む新しいアセットの配布が必要)
起動にネットワークリクエストを挟まず、なにがなんでも速く起動したいならこれ。
起動後のバックグラウンド処理でアップデーター起動、というものが多い。
アプリケーションの起動処理とアップデーターの起動は独立。
準スタンドアローン
起動時や要所要所にネットワークリクエストを必要とするが、瞬断に耐えうるもの。AndroidとiOSアプリと似たような設計になる。
- アセットの一部がServiceWorkerでキャッシュされた状態(初回アクセスは必要)
- すべてのリクエストをServiceWorkerでモックしているが、サーバー側で更新があった場合再取得(application cache的用途)
起動後に最小限の情報を持っていれば、必要な情報はクライアントでキャッシュしてネットワークリクエストを減らし高速に動作する設計。普通のウェブサイトの発展形ともいえる。
最近の東京の地下鉄では稀になったけど、地下鉄で定期的にネットワークが切れることが予想される環境や、使われるシチュエーションが発展途上国などで回線品質を悪い場所を想定するときにも有効。
SlackやSkypeのようなチャットサービスはログイン必須+ネットワーク前提なので、結果的にこうなる。
アプリケーションの起動処理はアップデーターの起動(ネットワークリクエスト含む)に依存。