← ブログ一覧へ
☁️

Googleアカウント連携によるクラウド同期の仕組みと安心して使うためのポイント

ローカルファーストのその先:複数端末で使いたくなったら

以前の記事で紹介した「ローカルファースト」という考え方は、データをまず端末内に保存し、クラウドはあくまで任意のオプションとして扱うというものでした。とはいえ実際に使い続けていると、「外出先のスマートフォンで思いついたシーンを書き足し、帰宅後にパソコンで続きを書きたい」というように、複数端末をまたいで執筆したくなる場面は自然に出てきます。今回はその実践編として、実際にクラウド同期を有効にする際の仕組みと、安心して使うためのポイントを解説します。

Googleアカウント連携で何が変わるのか

未ログインの状態では、これまで通りすべてのデータが端末内(ブラウザのローカルストレージ)だけに保存され、機能制限なくフル活用できます。Googleアカウントでログインすると、これに加えてGoogle Driveへのクラウド同期が有効になり、複数の端末から同じ作品を開いて編集を続けられるようになります。ログインするかどうかは完全に任意で、ログインしなければデータが外部に送信されることは一切ありません。

保存先は「自分のGoogle Drive」という安心感

同期データの保存先は、開発者側が用意したサーバーやデータベースではなく、ユーザー自身のGoogle Driveです。開発者側でユーザーの執筆データを預かる仕組みそのものを持っていないため、「サービス側のデータベースが不正アクセスを受けて流出する」といった種類のリスクを構造的に避けられます。保存先フォルダは既定でアプリ専用のフォルダが自動作成されますが、設定画面から任意の既存フォルダを選んで保存先に指定することもできます。

「drive.fileスコープ」が意味するプライバシーの範囲

Googleとの連携には「drive.fileスコープ」という権限範囲が使われています。これは、アプリ自身が作成・開いたファイルにしかアクセスできない、限定的な権限です。つまり、Googleアカウントでログインしたからといって、Drive内にある他の写真や文書、他のアプリが保存したファイルにアクセスされる心配はありません。あくまで、このアプリが作った同期用のファイルだけがやり取りの対象になります。

同期のタイミングと「作品ごと丸ごと同期」という方式

同期は、シーンを切り替えたタイミング・1分ごとの自動同期・「今すぐ同期」ボタンによる手動同期の、3つのタイミングで行われます。同期の方式は、細かい差分だけをやり取りする複雑な仕組みではなく、作品ごとに全データをまとめてJSON化してアップロード・ダウンロードする、シンプルな方式が採られています。仕組みをシンプルに保つことで、同期処理自体の不具合によってデータが壊れるリスクを抑える設計になっています。

どちらが新しいかを自動判定する仕組み

端末側のデータとGoogle Drive側のデータのどちらを正とするかは、「更新日時がより新しい方を採用する」という単純なルール(last-write-wins)で自動的に判定されます。端末のデータの方が新しければDriveへアップロードし、Drive側の方が新しければ端末へダウンロードする、という判定が同期のたびに行われます。ダウンロードする際には、取得したファイルの中身が本当にその作品のものかを照合したうえで取り込む仕組みになっており、細工されたファイルによって無関係な既存プロジェクトが不正に上書きされることのないよう配慮されています。

複数端末を使うときに気をつけたいこと

「last-write-wins」という方式の性質上、複数の端末でほぼ同時に同じ作品を編集してしまうと、後から同期した方の内容が、先に同期した方の内容を上書きしてしまう可能性があります。複数端末で使う場合は、一つの端末で書き終えてから別の端末に切り替える、あるいは切り替える前に「今すぐ同期」を意識的に押しておく、といった運用を心がけると、意図しない上書きを避けやすくなります。

同期されないものもある:バージョン履歴はローカル限定

すべてのデータがクラウド同期の対象というわけではありません。たとえば、以前紹介したバージョン履歴(過去のスナップショット)は、同期の対象外として扱われ、あくまで端末ごとのローカルな安全網という位置づけになっています。複数端末を使っている場合、ある端末で保存した履歴を別の端末から参照することはできない点は覚えておくとよいでしょう。

モノ書きでの使い方

モノ書きでは、設定画面からGoogleアカウントでログインするだけでクラウド同期が有効になります。容量制限はなく、未ログインであれば引き続き完全ローカルの状態で全機能をフルに使えます。複数端末での執筆を考え始めたタイミングで、まず試してみるとよい機能です。