コンテンツに進む

MiDiccio のゴミ箱機能改善についてのご案内

単語帳アプリ MiDiccio の v1.4.4 で、ゴミ箱から言葉を完全に削除できるようにしました。あわせて、バックアップから「置換」で復元したときの扱いも見直しています。

前回の記事の続きです。前半は使っている方に向けた変更点のまとめ、後半は開発者向けの仕組みの解説です。

  • ゴミ箱の言葉を完全に削除できるようになりました。 1件ずつ削除するほか、ゴミ箱をまとめて空にすることもできます。
  • 完全に削除した言葉は元に戻せません。 クラウド同期を使っている場合は、iCloud / Google Drive とほかの端末からも消えます。
  • 「置換」で復元したとき、バックアップにない言葉はゴミ箱に移るようになりました。
  • ゴミ箱の言葉を「すべて元に戻す」ことができるようになりました。 間違ったバックアップで置換しても、まとめて戻せます。
  • 同期を使っている場合、置換でゴミ箱に移った言葉は、ほかの端末でもゴミ箱に移ります。
  • バックアップにも含まれる言葉は、これまでどおりバックアップの内容で上書きされます。上書きされた内容はゴミ箱に入らないので、置換の前に今のデータもバックアップしておくと安心です。

あわせて、プライバシーポリシーを v1.13 に改訂し、完全に削除した言葉の扱いを記載しました。

ここからは仕組みの話です。前回の記事の「同期のルール」と「削除は『印を付けるだけ』」を前提にしています。

前回、完全に削除がまだない理由として、次の3つを挙げました。

  • 端末の中で消しても、ほかの端末やクラウドには残っているので、次の同期で戻ってくる
  • 「完全に削除した」という情報を全端末とクラウドに伝える仕組みが別に必要
  • 古いバージョンのアプリが混ざっている場合も考えなければならない

完全削除では、レコードを消さずに、中身を空にした削除レコードで上書きします。

  • 言葉・意味・メモ・タグを空にし、「削除済み」の印だけを付けたレコードにする
  • 更新日時を新しくし、「未送信」の印を付ける
  • あとは通常の同期で、Last-Write-Wins によりほかの端末とクラウドに伝わる

レコードそのものは残るので、次の同期でクラウドから「戻ってくる」ことはありません。残るのは、どの言葉かを見分ける ID と日時だけです。完全削除を「中身を消す編集」として扱ったので、ゴミ箱のときと同じく、同期に新しいルールを足さずに済みました。

古いバージョンが混ざっても困らない

セクション「古いバージョンが混ざっても困らない」

古いバージョンとの互換性にも問題はありませんでした。

  • v1.4.1 のゴミ箱は、もともと中身が空の削除レコードを一覧から除外していた
  • 以前のバージョンのアプリは、削除のときに中身を空にしたレコードを送っていた。今回の削除レコードはこれと同じ形

そのため、ほかの端末が v1.4.1 のままでも、完全に削除した言葉はゴミ箱から消えるだけで、不具合にはなりません。

置換を「削除」として同期する

セクション「置換を「削除」として同期する」

これまでの置換は、端末のデータをバックアップの内容に入れ替えるだけでした。同期を使っていると、ここに問題がありました。

  • 置換で消えた言葉は、クラウドにはまだ残っている
  • 次の同期で「クラウドにだけある言葉」として戻ってくる

そのため、「置換」という説明どおりになりません。逆に同期を使っていないと、消えた言葉を戻す手段がありません。

v1.4.4 では、置換を次のように変えました。

  • バックアップにある言葉は、これまでどおり ID ごとに上書きする
  • バックアップにない言葉は消さずに「削除済み」の印を付け、更新日時を新しくして「未送信」にする
  • もともとゴミ箱にあった言葉は変えない

ふだんの削除と同じ扱いなので、ゴミ箱に入り、同期でほかの端末にも削除が伝わります。「すべて元に戻す」で、置換の前の言葉をまとめて戻せます。

v1.4.4 は App Store と Google Play で公開しています。

最終更新: