该技能面向移动端离线优先架构,提供一套可复用的模式与代码示例。
用途:在弱网或断网环境下保证应用可用,先展示本地缓存数据,再在联网时同步更新。
主要能力:
- NetworkBoundResource 抽象,协调缓存与网络数据源,配合 Resource 包装类(Success/Loading/Error)在 Repository 中使用。
- 缓存策略:缓存优先(默认)与网络优先(时效敏感数据)。
- 基于 TTL 的缓存失效,通过 CachePolicy 记录时间戳,提供默认 15 分钟、短 2 分钟、长 24 小时等常量。
- 连接状态监听:Android 使用 ConnectivityManager.NetworkCallback,iOS 使用 NWPathMonitor。
- 离线写入同步队列:PendingOperation 实体记录操作类型、实体、载荷与重试次数,联网后处理队列。
- 冲突解决:最后写入胜出、字段级合并。
- 指数退避重试,以及 Android WorkManager 周期同步与 iOS BGTaskScheduler 后台任务示例。
使用方式:按示例将 networkBoundResource、CachePolicy、SyncQueue 等集成到 Repository 与数据层;后台同步需注册对应平台的周期任务。
适用场景:需要离线可用的移动应用,如资讯、笔记、社交等。
限制:示例基于 Kotlin 协程与 Swift,具体 API 与平台版本要求资料未提供;实际 TTL、重试次数等参数需按业务调整。