Lumelis Digital

Local-first アプリ:保存・プライバシー・オフライン利用

残しておきたい作業をアプリに預ける前に、保存先、外部に送られる情報、復元方法を確認しましょう。Local-first は有用な設計の考え方ですが、その名称だけでこれらすべてが分かるわけではありません。

Local-first とは何か

Ink & Switch が2019年に発表したlocal-first に関する論文では、データの主となるコピーを自分の端末に置きます。ほかの端末やサーバーに同期されたコピーがある場合もあります。この考え方は、インストールするソフトウェアにもウェブアプリにも当てはまります。ブラウザーで計算を実行するだけでは、local-first の原則をすべて満たしているとは言えません。

端末内の保存だけではプライバシーは決まらない

localStorage は、ウェブサイトが設定などのデータを端末に保存するために使える、ブラウザー内の保存領域です。OWASP のブラウザー内保存に関するガイドでは、ページ上で動く悪意のあるスクリプトが、そのページの localStorage を読み取れることを説明しています。端末に保存するだけでは、データの機密性は保証されません。ローカルでの処理と、同期、利用状況の分析、外部サービスからのダウンロードは両立し得ます。任意の共有機能や同期機能も含め、アプリが何を保存し、何を送ると説明しているかを確認しましょう。

復元できるコピーを残す

localStorage を含むブラウザー内のデータは、サイトデータを削除したときや、ブラウザーの保存ポリシーによって失われる場合があります (WebKit). MDN のブラウザー内保存に関する資料によると、プライベートブラウジングのデータは通常、そのセッションの終了時に削除されます。大切な作業の唯一のコピーをブラウザー内だけに置かないようにしましょう。扱いはブラウザー、端末、アプリの保存方法によって異なります。

必要なオフライン機能を確認する

MDN の service worker ガイドでは、キャッシュを使ってウェブアプリのオフライン利用を支える方法を説明しています。すでに開いているタブで操作できても、接続なしで再読み込みしたり、アプリを開き直したりできるとは限りません。実際に必要な操作について、オフラインで使えるか確認しましょう。

  • テスト用データを使う: 試す前に、大切な作業は別の場所に保存します。不要になってもよい例を作り、ページを再読み込みしてアプリを開き直し、何が残るか確認しましょう。
  • 復元を試す: 書き出しやバックアップがある場合は、テスト用の例で試し、保存したデータを開いたり復元したりできるか確認します。復元する前に、アプリ内の現在のデータが置き換わるか確認してください。残したい作業が消える可能性がある場合は中止しましょう。同期できることだけでは、以前のバージョンを復元できるとは言えません。
  • オフラインで試す: テスト用の例で接続を切り、アプリの開き直しも含めて必要な操作を試します。その後、再接続して同期の結果も確認しましょう。大切な作業の唯一のコピーでこのテストをしないでください。

Lumelis で確認する

Lumelis Digital の言語選択は、保存機能が利用できる場合に、明示的に選んだ言語をこのブラウザーに保存できます。この設定は、ツールで作った作業内容のバックアップではありません。Lumelis のツール一覧で確認したい機能を選び、サイトが説明するデータの扱いについてはプライバシーポリシーを確認しましょう。機能ごとに評価してください。設定が保存されることだけでは、オフライン対応や利用状況の分析がないことは確認できません。

試したアプリのバージョン、ブラウザー、端末で何ができたかを記録しましょう。これらの実用的な確認は、機能が自分の用途に合うかを判断する助けになりますが、サービス全体の安全性を認定するものではありません。

出典・参考資料