アーキテクチャ

トレーニングアプリにおける local-first とは何か

Local-first はプライバシーの標語ではありません。正となる複製がどこにあるかについての判断であり、他のすべてはそこから導かれます。

cronoWiz のホーム画面。筋力、有酸素、ツール、設定、進捗、日記の各セクションがタイル状に並ぶ

よくある配置では、サーバーが本物の複製を持ち、スマホはキャッシュを持ちます。回線の悪いところでアプリを開くとインジケーターが回るのは、目の前にあるものが実際にはそこにないからです。Local-first はそれを逆にします。本物の複製は端末にあり、計算もそこで起こり、ネットワークは依存する対象ではなく、意図して使う道具になります。

トレーニングとの相性は驚くほど良い。セッションはそれが行われた場所で生まれ、小さく、二人が同時に編集することはまずありません。つまり分散システムで最も難しい問題、すなわち同時編集のマージが、ほとんど起きない。残るのは、即座に開き、地下でも動く速いアプリです。

代償は、同期が明示的になることです。端末どうしを調停する見えないプロセスはありません。あるのは、あなたが書き出す暗号化ファイルと、あなたが始める転送です。より正直で、ほんの少し手間が増える。それが cronoWiz の選んだ交換です。

  • 原本は端末が持つ

    IndexedDB にあるのは本物のデータで、どこか遠くにあるもののキャッシュではありません。

  • 即座に開く

    最初の画面が使えるようになるまで、何もリクエストを待ちません。

  • 同期は決断

    暗号化ファイル、または直接転送。始めるのはあなたです。

  • この設計はアカウントを要求しない

    正を持つサーバーがないなら、身元の使い道もありません。

無料。プライベート。あなたのもの。

アカウントなし。サーバーなし。Cookie なし。あるのはあなたとスマホ、そして自分の仕事だけをするアプリ。cronoWiz は端末内で完結して動く無料の PWA です — データは外に出ません。一度も。

実際によく聞かれること

Local-first とは、まったくインターネットを使わないという意味ですか。

違います。地図、ウェブラジオ、そして一度きりのモデルのダウンロードはネットワークを使います。違いは、それらがなくてもアプリが動き続けることです。どれもあなたのデータを持っていないからです。

2台目の端末ではどうなりますか。

その端末は自分の複製を持ちます。バックアップを移すか直接転送を開いて突き合わせ、取り込みは識別子で照合されるので、同じセッションが二重に現れることはありません。

offline-first と同じですか。

近い親戚ですが、同じではありません。offline-first は接続が切れても生き延びること、local-first はどの複製が正かという話です。cronoWiz は両方であり、アカウントを不要にしているのは後者のほうです。