用 AI 开发者空间做鸿蒙云同步待办清单:从一句话需求到端云数据同步
昨天我用 AI 开发者空间做了一个鸿蒙端云一体的签到 App,今天换一个更贴近日常的场景继续练手:云同步待办清单。案例来自鸿蒙开发实践中心,目标是验证三件事:端云数据能不能实时同步、断网后本地操作会不会丢、多设备登录同一账号数据是否一致。本文记录的是今天真实的操作过程和梳理出来的思路。
一、案例结构:端侧与云侧的分工
这个案例的端云分工很清晰:
- 端侧:ArkTS + ArkUI 实现待办列表、新增、勾选、删除,以及本地缓存,离线也能正常操作。
- 云侧:云数据库(AppGallery Connect)存放待办数据,云函数处理同步与清理逻辑,APIG 做统一流量入口。
- 同步机制:端侧改动先写本地,再同步上云;云端变化再推回端侧,多设备保持一致。
今天我在 DevSpace 里向 AI 提的第一个问题就是 APIG 网关的作用,得到的回答是:APIG 是端侧与云侧之间的统一流量入口,负责请求路由、认证鉴权、限流熔断和协议转换,让鸿蒙终端以一致的方式安全调用后端云函数和微服务,开发者不用在每个服务上重复处理这些横切关注点。这句话基本就是这个案例云侧设计的缩影。
二、今天的动手过程
- 在开发者成长中心点开“每日浏览一个鸿蒙案例”,打开云同步待办清单案例,停留浏览 60 秒以上,通读了案例结构、同步流程和关键代码位置。
- 从成长中心进入 AI Agent 实践中心,再进 AI 开发者空间体验版(免费试用,剩余约 3 小时),新建会话,工作目录默认 /root/workspace。
- 在 AI Shell 里向 AI 提问 APIG 网关的作用,拿到上面那段回答,确认了网关在端云链路里的位置。
- 对照案例,把待办清单的同步链路按“本地写、云端存、多端对齐”三步重新梳理了一遍。
三、同步链路里最值得注意的三点
1. 以云端为准绳,本地只做缓存
待办数据最终以云数据库为准,端侧数据库是缓存和离线兜底。这样即使换手机,登录同一账号后清单也能完整恢复,不用再手动迁移。
2. 冲突用更新时间裁决
同一条待办在两台设备上同时改动时,靠最后更新时间戳裁决,后写的覆盖先写的。规则简单,但前提是每条记录都要带可靠的更新时间,并且删除要用软删除标记,否则一条已删的数据可能被另一台设备的旧数据“复活”。
3. 认证与网关不要自己造轮子
登录态、鉴权、限流这些事交给 APIG 和云函数,端侧只关心业务。自己在每个接口里手写鉴权,迟早会漏掉某一处。
四、一个最小的数据模型(示意)
下面是我按案例思路整理的示意模型,不是直接复制案例源码:
interface TodoItem {
id: string; // 云端唯一标识
title: string; // 待办内容
done: boolean; // 是否完成
updatedAt: number; // 最后更新时间戳,用于冲突裁决
deleted: boolean; // 软删除标记,避免删除操作被旧数据复活
}
五个字段就能把清单的同步讲清楚:能认出是哪条、知道内容和状态、能裁决冲突、删了也不会复活。
五、踩过的两个小坑
- 体验版环境准备需要等一会儿。刚进 DevSpace 时中央还是空白的“环境准备中”,等十几秒才会出现首页和会话入口,不要反复刷新,刷新只会重新排队。
- 社区写博客要用已登录的标签页进编辑器。我今天从成长中心点“去完成”新开的标签页一度显示未登录,而登录助手操作过的那一页是正常登录的。直接在已登录的那一页点“写博客”,不要在未登录的标签页里反复点登录。
六、小结
待办清单看起来小,但把登录、网关、云数据库、云函数、离线缓存串起来,就是一套完整的端云一体最小闭环。签到 App 练的是“端云联调能不能跑通”,待办清单练的是“数据在多端之间能不能长期保持一致”,两个场景练的不是同一个能力。下一步我想给清单加上提醒时间,用云函数做定时提醒,再看看端云之间怎么分工最省事。
- 点赞
- 收藏
- 关注作者
评论(0)