More Related Content
Similar to 僕らのデータ同期プラクティス (20)
More from Yukiya Nakagawa (20)
僕らのデータ同期プラクティス
- 3. @Nkzn (なかざん)
• 中川 幸哉 (28)
• WaterCell Inc. @ Niigata
• UIデザイナーとアーキテクトの狭間をうろう
ろしている
• 日本Androidの会 新潟支部(活動停止中)
- 20. 本当に大事なのは
onPerformSyncの中で何をするか
public class SyncAdapter extends AbstractThreadedSyncAdapter {
// ...
@Override
public void onPerformSync(Account account, Bundle extras,
String authority, ContentProviderClient provider,
SyncResult syncResult) {
/* Elegant Synchronization */
}
// ...
}
- 25. 突然情報が出始めた
2009年 2010年 2011年 2012年 2013年 2014年
Android 2.0 Google I/Oで言及
50 Android Hacks
公式ドキュメントが公開?
50 Android Hacks日本語版
mixi-inc/AndroidTraining
弊社もこの頃から
触り始めた
- 27. 参考にした資料
• 50 Android Hacksのサンプルコード
• https://github.com/Macarse/50AH-code/
• Hack 23(Pythonサーバー付き)
• Evernote Synchronization via EDAM
• https://dev.evernote.com/intl/jp/doc/articles/
synchronization.php
• https://github.com/ninjinkun/EDAMSync/blob/master/EDAM-
Japanese.md (日本語訳)
- 30. 差分を請求する
id data modified_at
1 hoge 10:00
2 fuga" 12:00
3 piyo" 15:00
4 hogehoge" 20:00
http://hoge/hoge?modified_after=13:00
last_fetched = 13:00
- 34. 同期の流れ
1. データのダウンロードを行う
• 初回はFull Sync, 2回目以降はIncremental Sync
2. サーバーで削除されていたデータをクライアントでも削除する
3. サーバーで更新されていたデータをクライアントでも更新する
4. クライアント側で作成(ADD)・更新(MOD)・削除(DELETE)されたデータ
をサーバへ送信する
5. 送信が済んだデータのStatusFlagをCLEANにする
6. last_fetchedを1の時刻に更新する