用 AI DevSpace 给鸿蒙单词打卡 App 加一个错词本:一次免费体验版实录
今天上午,我照着华为云开发者成长中心的每日任务走了一遍:浏览鸿蒙案例、给鸿蒙案例代码仓点 Star、进 AI DevSpace 体验版和 AI Shell 对话,最后把这一路的收获写成这篇实践记录。主角是鸿蒙实践案例中心里的单词打卡 App(HarmonyOS-APP-word-check-in,基于 HarmonyOS 与 Appwrite Serverless 的单词打卡学习项目),我想给它加一个很实用的功能:错词本。
一、为什么是错词本
单词打卡类 App 最容易做的功能是“今日打卡”和“背词列表”,最容易被忽略的是“错了的词去哪了”。用户在测验里答错一次,系统如果不记下来,这个错就白错了。错词本要解决的就一件事:把答错的词自动收进一个单独的列表,支持按错误次数排序、支持针对性复习、答对三次后自动“毕业”移出。功能不大,但能直接决定一款背词 App 是不是真的帮用户记住了词。
二、我的准备工作:先看案例,再进 DevSpace
动手之前我先做了两件事。第一件是在鸿蒙开发实践中心打开了一个案例详情页慢慢看——这次看的是数独小游戏案例,ArkUI 纯端侧开发,重点看它的工程结构和状态写法是怎么组织的。第二件是去 GitCode 的鸿蒙实践案例中心(harmony-practice-center)组织页,给单词打卡 App 的代码仓点了一个 Star。这个仓之前还没 Star 过,点完状态从 Star 581 变成 Starred 582。
然后从 AI 办公开发实践中心的【实践任务】楼层点【前往 AI DevSpace 实践】,来到版本选择页。这里有两个版本:体验版写着“秒级启动、免费试用、不消耗额度”,持久化版写着“需要核时计费”。我只选了体验版点【立即进入】,一分钱不花。进入后先在左下角【会话】区新建了一个 AI 对话会话,名字自动生成为“AI DevSpace 体验版功能介绍”,再向 AI Shell 发了一句话:“请用一句话介绍 AI DevSpace 体验版能做什么。”AI 随即开始检索和思考,并陆续给了回复。整个过程里我没有碰持久化版,也没有做任何付费操作。
三、错词本的 ArkTS 设计
先定数据模型。一个错词条目至少要有四个字段:单词本身、释义、上一次答错的时间、累计错误次数。复习时还要一个“连续答对次数”,答对三次就毕业。用 ArkTS 写出来大概是这样:
interface WrongWord {
word: string;
meaning: string;
wrongCount: number;
correctStreak: number;
lastWrongTime: number;
}
状态管理上,列表用 @State wrongList: WrongWord[] = [] 放在错词本页面,条目本身如果还要在行内直接改答对次数,就把条目包成 @Observed class WrongWordItem,页面里用 @ObjectLink 绑定。这样点“答对了”时只刷新那一行,不用整页重算。单词打卡主流程答错时,调用一个 addToWrongBook(word):先查列表里有没有这个词,有就 wrongCount++ 并把 correctStreak 清零,没有就新插一条;同时把 lastWrongTime 更新成现在。
复习页的排序规则我定为:错误次数多的排前面,同次数的按上次答错时间倒序。答对一次 correctStreak++,答错一次清零;correctStreak 到 3 就把这条移出列表,并可以留一句“已掌握”的提示。规则写死在工具函数里,不要散落在按钮回调里,否则以后改规则要翻好几个文件。
四、让 AI Shell 帮我搭骨架,而不是代替我思考
在 DevSpace 里我刻意只让 AI Shell 做它擅长的事:生成样板代码、列出需要新建的文件、提醒容易漏的点。比如我让它按上面的数据模型生成错词本页面的骨架代码,再逐行检查它生成的 @State、@Observed 用法有没有问题。实测下来有两点体会。第一,AI 给的骨架可以直接用,但细节要自己补——比如 Appwrite 的 Serverless 字段名、本地持久化用 Preferences 还是数据库,要以单词打卡项目本身的现状为准,不能照搬 AI 猜出来的名字。第二,体验版容器会在 3 小时后释放,再次启动是全新容器,所以写了一半的代码一定要及时保存到自己的地方,别只留在容器里。
五、三个容易踩的坑
第一个坑是版本选错。DevSpace 有免费体验版和按核时计费的持久化版,入口处两个卡片挨着,点之前先看清“免费试用、不消耗额度”那几个字再点。第二个坑是把 Star 点反了。GitCode 上已经 Star 过的仓会显示 Starred,再点一次是取消 Star,不是再 Star 一次;点之前先看清状态。第三个坑是积分到账有延迟。今天的浏览任务是立刻到账的,但 Star 和 AI DevSpace 的积分在做完后过了一段时间还没显示,到账状态要以成长中心的积分明细为准,不能靠反复点击去“催”。
六、小结
一次免费的 DevSpace 体验,足够把“错词本”从想法推进到可落地的设计加代码骨架:数据模型五个字段、答对三次毕业的规则、@Observed + @ObjectLink 的行级刷新、以及 AI Shell 辅助生成骨架、人工逐行验收的分工。下一步我打算把这套骨架真正合进单词打卡 App 的工程里跑一次,验证答错收录、排序复习和毕业移出三条链路,再把实测结果补进这篇文章。如果你也在用鸿蒙案例练手,不妨先从“给现有案例加一个小功能”开始,比从零搭一个 App 更容易坚持下来。
- 点赞
- 收藏
- 关注作者
评论(0)