Appearance
T-05: タスクのサーバー同期
| 項目 | 内容 |
|---|---|
| ステータス | ✅ Done |
| 優先度 | P1 |
| 依存 | A-03(認証フロー完成) |
ユーザーストーリー
ユーザーとして、タスクデータをサーバーに同期して、端末を変えてもタスクを引き継ぎたい。
受け入れ条件
- [x] タスクのCRUDがサーバーに反映される
- [x] 起動時にサーバーからタスクを取得してローカルとマージ
- [ ] ふりかえりデータもサーバーに同期される
- [ ] オフライン時はローカルに書き込み、オンライン復帰後に同期
実装内容
iOS側(TaskViewModel.swift)
サーバー同期メソッド:
fetchServerTasks()— 起動時にサーバーからタスク一覧を取得、serverIdでマージsyncCreateTask()— タスク追加時にサーバーへ作成、返却されたtaskIdをserverIdに保存syncUpdateTask()— タイトル・説明・ステータス変更時にサーバーへ反映syncDeleteTask()— 削除時にサーバーからも削除
同期タイミング:
TaskListViewの.taskmodifier で画面表示時にサーバー取得- 各CRUD操作のローカル永続化後に非同期でサーバー同期
データモデル変更:
TaskItemにserverId: String?を追加(サーバー側IDとの紐付け)
Backend側(既存)
GET /tasks— 一覧取得(status フィルタ、ページネーション対応)POST /tasks— 作成PUT /tasks/{task_id}— 更新DELETE /tasks/{task_id}— 削除
残タスク
- ふりかえり(reflection)のサーバー同期
- オフラインキュー(ネットワーク不通時のリトライ)
- コンフリクト解決(同一タスクの競合更新)
- アーカイブデータの同期