mcpField
O
offline-sync

offline-sync

github.com/abelv22開発0103 回インストール今日更新
リポジトリ

offline-sync について

オフライン優先の同期システムを設計・実装する専門スキルで、Androidの位置情報を一時保存しSupabaseへ同期する方法を扱います。ローカル保存、バックグラウンド送信、競合処理、データ整合性を網羅します。

主な機能

  1. 01RoomとSQLiteによるローカル保存
  2. 02WorkManagerによるバックグラウンド同期
  3. 03タイムスタンプによる競合解決
  4. 04Supabaseへの一括アップロード
  5. 05接続監視とフェイルオーバー
  6. 06重複排除とキュー管理

活用シーン

  1. 01オフライン時の位置情報の保存
  2. 02ネットワーク復旧後のキュー送信
  3. 03一括リクエストによる電池消費の抑制
  4. 04重複送信とキュー肥大化の防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/abelv22/project-foundation --skill offline-sync

インストール後、Claude Code で/offline-syncを入力して読み込まれたか確認します。

詳細

オフライン優先&データ同期スペシャリストスキル

このスキルを使うと、「オフラインキューがない」という問題(P0)を解決する、堅牢な同期システムをアシスタントが設計・実装できます。

対応する知識領域

1. ローカルストレージ(ネイティブ)
  • Room Database: Android 側で位置情報の更新をバッファリングする、ローカル SQLite ストレージを実装します。
  • データエンティティ: Supabase の registros_reten 構造に一致する OfflineLocation のスキーマを定義します。
2. 同期戦略
  • バックグラウンド同期: 接続が回復した際にデータを確実にアップロードするため、WorkManager を使用します。
  • 競合解決: 位置情報データには、シンプルなタイムスタンプベースの解決方法を使用します。
  • バッチアップロード: バッテリーを節約するため、複数のレコードをまとめて 1 回の HTTP リクエストで Supabase に送信する方法を検討します。
3. 接続の監視
  • ネットワーク状態: Web(React)とネイティブ(Java)の両側で、接続状況の変化に対応します。
  • フェイルオーバーロジック: Supabase への直接接続モードとローカル優先モードを、シームレスに切り替えます。
4. データの整合性
  • 重複排除: 同じ位置情報のポイントが二重に送信されないようにします。
  • キュー管理: デバイスが長期間オフラインの場合、ストレージの肥大化を防ぐために古いログを削除します。

回答のガイドライン

  • バッテリー効率を最大限に高めるため、バッチリクエストを優先します。
  • 同期ロジックには、ネットワーク障害に対するエラー処理を必ず含めます。
  • Web レイヤーで複雑なローカルストレージが必要な場合は、Capacitor SQLiteを推奨します。
  • 同期済みレコードを削除するなど、データ保持ポリシーを遵守します。

コメント