現在のアプリケーションの多くは、データをサーバー上に保存し、ユーザーの端末を単なる表示画面として扱っています。ネットワークが切断されれば作業が中断し、サービスが停止すればデータが失われます。「Local-first」はこの順序を逆転させます。
「ローカルファースト」アプリケーションの条件
- 開けばすぐに使える、ネットワーク接続を待つ必要なし
- データはユーザーの端末に保存され、他のツールでも読み取れる形式です
- 複数デバイスの同期はオプションであり、ユーザーにバージョンを選択させるのではなく、自動的に競合を解決します
- サービスが停止しても、アプリは引き続き動作します
なぜ今になって実現可能になったのか
最大の課題は常に同期です。2台のデバイスがオフライン状態で同じドキュメントを編集した場合、どのように変更を統合すればよいのでしょうか?統合可能なデータ構造――変更を任意の順序で組み合わせても同じ結果が得られるもの――により、この問題はサーバーによる仲裁なしに解決できます。
代償
アプリ内での同期処理は、APIを呼び出すよりもはるかに実装が困難です。クライアント側で大規模なデータセットに対して全文検索を行う場合も、専用のサーバーよりも処理速度が遅くなります。また、ソフトウェアがサービスなしでも動作する場合、サブスクリプション型のビジネスモデルを正当化するのは難しくなります。
ユーザーにとっては、試すのは簡単です。ネットワーク接続を切断してからアプリを開いてみてください。まだ使えるものが、あなたが本当に所有しているものです。
Thảo luận