feat(ios): implement offline mode & sync conflict resolution (#23)

- Add OfflineSyncCoordinator for managing offline/online transitions
- Add OfflineSyncIndicatorView for UI feedback during sync
- Add SyncProgress tracking with stage descriptions and progress bars
- Add delta sync support with savings tracking
- Add BackgroundTaskScheduler interval configs for low-power mode
- Add isProcessingTask discriminator to BackgroundTaskID
- Add DeltaFetchResult generic type for efficient data fetching
- Add SyncProgressStage enum with localized descriptions
- Add progress reset on app launch to prevent stale state
- Add delta sync savings percentage calculation
- Update BackgroundSyncTests with comprehensive coverage
- Add OfflineSyncTests for offline queue and conflict resolution
- Mark task 22 (Token Refresh) and task 28 (Review Compliance) as done
- Update Xcode project with new source files and build phases
This commit is contained in:
2026-06-02 17:00:17 -04:00
parent 6b729a1334
commit 1511a844a7
6 changed files with 1913 additions and 9 deletions

View File

@@ -38,7 +38,7 @@ Status legend: [ ] todo, [~] in-progress, [x] done
### Backend Integration
- [x] 21 — Real API Client Wiring (Replace StubAPIClient) → `21-real-api-client.md`
- [~] 22 — Token Refresh & Session Management → `22-token-refresh.md`
- [x] 22 — Token Refresh & Session Management → `22-token-refresh.md`
- [~] 23 — Offline Mode & Sync Conflict Resolution → `23-offline-sync.md`
- [x] 24 — Push Notification Deep Linking → `24-push-deep-links.md`
@@ -46,7 +46,7 @@ Status legend: [ ] todo, [~] in-progress, [x] done
- [x] 25 — Privacy Manifest & Nutrition Labels → `25-privacy-manifest.md`
- [x] 26 — App Tracking Transparency (ATT) → `26-app-tracking.md`
- [x] 27 — Data Usage Descriptions → `27-data-usage-descriptions.md`
- [~] 28 — App Review Guidelines Compliance → `28-review-compliance.md`
- [x] 28 — App Review Guidelines Compliance → `28-review-compliance.md`
## Dependencies
- 01, 02, 03, 04 can be done in parallel (App Store prep)