「宝贝日程表」做上架以后,我发现自己平时开发,已经不打开 DevEco Studio 了。

想改功能,就把要求告诉 AI;它读工程、改代码、编译装机,我看改动和设备上的效果,有问题再接着处理。代码照样在改,版本照样在发,只是不用一直坐在 IDE 前面了。

当然,SDK、编译和签名工具还在,现有配置也可能依赖 Studio 的安装目录。“吃灰”的是那个很少被我打开的窗口,开发环境可不能随手删。

上一篇写了宝贝日程表从开发到上架的过程。这次想把里面值得复用的方法挑出来:如果你也想让 AI 帮自己做一个 App,第一步该说什么,做到一半出了问题怎么办,又怎么判断它真的做完了。

一、不打开 IDE,谁来编译和运行?

先说清楚我用的开发方式。

如果只是让聊天框生成代码,再自己复制进工程、点击运行、把报错贴回去,人还是得守着 IDE。我现在用的是能操作工程和调用工具的 AI Agent。可以把它理解成一个能读文件、改文件、执行命令,并根据结果继续处理任务的开发助手。

以修改课程时间为例,它可以先找到保存逻辑,改完调用构建工具;构建失败就读取报错,修完再构建;成功后把应用装到设备上,继续查看页面和日志。

编译器、安装工具都还在工作,只是调用它们的操作交给了 Agent。

「宝贝日程表」早期主要通过 hvigorwhdc 和工程脚本构建、装机,后来接入 DevEco CLI,查文档、构建、设备操作等步骤有了更统一的入口。工具能力和安装入口可以看华为的 DevEco 官方页面

经常和它一起出现的几个词,可以按用途理解:

名称在开发里做什么
Agent读需求、分析代码、调用工具,根据结果继续处理
CLI命令行入口,让 Agent 执行构建、安装等操作
MCP连接外部能力,例如查询鸿蒙官方文档
Skills、项目规则留下可复用的做事步骤和项目约束

DevEco CLI、MCP 与 Skills 在开发流程中的分工

刚开始不用急着把所有工具装一遍。先确认自己的 Agent 能读取项目、完成一次构建,并把应用运行到设备或模拟器上。查资料、看日志、做截图,再按需要逐步接上。

等这几步能连续完成,IDE 的窗口自然就不用一直开着了。

二、第一条需求,先讲清楚一个生活场景

「宝贝日程表」的起点,是孩子的安排散在几个地方:校内课程有课表,兴趣班另外记时间,老师临时通知要带什么,又得去群里翻。

我想做的,就是早上出门前打开一个页面,看清今天的课和要记得做的事。

这句话已经能帮助决定首版做什么。今天页放当天课程和事项,周课表看整周安排;学校按“第几节”上课,兴趣班按“几点到几点”上课,录入方式也要区分。

宝贝日程表的今天、课表、事项与我的页面

如果只说“帮我做一个功能完整的课程表 App”,AI 有很大的发挥空间。账号、家庭成员、云同步、统计、AI 排课,都可能被加进方案。看着挺完整,真做起来,每一项都要花时间调试和维护。

所以第一条需求,我建议至少写清楚四件事:谁来用、什么时候用、要完成什么、首版先做到哪里。

用宝贝日程表的场景,可以整理成这样的示例:

做一个给家长用的鸿蒙日程 App。主要在早上出门前查看孩子当天的校内课程、兴趣班和临时事项。校内课按节次记录,兴趣班填写具体起止时间。第一版先把录入、保存和查看做通,不要求登录,数据保存在本机,暂时不做家庭共享和云同步。

这段话不需要懂代码,但已经替后面的开发省掉了很多猜测。

尤其“暂时不做什么”值得写。AI 很容易继续扩展方案,自己也容易觉得“顺手加上吧”。首版范围定小一点,才能尽早装到手机上,看看这个东西到底会不会每天用。

三、把大需求拆成几次能检查的小改动

需求说清楚以后,也别让 AI 一口气把所有页面和功能全写完。

对日程应用来说,可以按下面的顺序推进。这是一个适合入门的拆法,不是对项目开发时间线的复述:

  1. 先存下一门课。 能新增,能看到,关闭应用再打开仍然在。
  2. 再做编辑和删除。 修改后显示新内容,取消时保留原数据,删除后不再出现。
  3. 再接今天页和周课表。 同一门课从不同入口看,时间和内容要一致。
  4. 最后接系统能力。 在本地功能稳定后,再处理桌面卡片和系统日历。

每次都有一个可以亲手检查的结果。即使出了问题,也知道这一轮刚改过哪一部分。

给 AI 派任务时,把操作过程和预期结果一起写进去。比如已有兴趣班编辑功能,现在要检查时间修改,就可以这样说:

先阅读现有课程编辑、保存和刷新逻辑,说明相关文件。这次只处理兴趣班时间修改:保存后返回课表,今天页和桌面卡片也要显示新时间;取消编辑不能保存。保留已有课程数据。改完构建、安装,并按这条操作路径检查。

这里有三个有用的约束:先读现有实现,限定本次范围,写明怎么验收。

“先读”能减少重复造一套数据存储的可能;“只处理时间修改”能避免修一个小问题顺便改半个项目;验收路径则让双方知道,做到哪里才算结束。

已有工程还要留好退路。Git 是记录代码版本的工具,可以让 AI 先检查工作区,保留原有未提交改动。一小段功能确认能用后,再按范围提交。下一轮改坏了,可以查看差异、撤回那一部分,不必一直赌“再修一次就好了”。

长期要求放进项目规则就行。例如宝贝日程表要保留独立包名、偏好存储和签名配置,视觉调整不能影响课程保存、删除、页面刷新与日历清理。这些比一句“请保证代码质量”容易执行得多。

四、调界面和修 Bug,反馈要具体到能复现

和 AI 合作时,反馈的质量很影响下一轮结果。

“再好看一点”可以继续拆。是卡片太松、插图太抢眼,还是底栏挡住内容?指出具体位置和想要的变化,通常更容易改到位。比如:

今天页的课程卡片缩小上下留白,课程名称和时间仍要清楚。顶部插图保持原样。把列表滚到底,确认最后一条事项完整露在底栏上方。改完给我看有数据和空数据两种截图。

有参考图时,也要说清楚参考哪一部分。喜欢它的配色,就只参考配色;喜欢底栏,就只参考底栏。宝贝日程表从视觉方向稿里保留了奶油纸张、深紫文字和柔和彩卡,信息布局则继续按真实课程内容调整。

截图里的“数学”只有两个字,实际课程名可能长得多。看界面时,可以故意放一个长课程名、一个完整地点,同一天多加几条事项,再看看空白页面。手机上看完,还要检查准备支持的其他窗口尺寸。

修 Bug 也一样。给出操作步骤、实际结果、期望结果,AI 才容易沿着代码查下去。例如下面是假设的刷新问题描述:

把兴趣班从 17:30 改到 18:00,点击保存,返回今天页仍显示 17:30,重新启动后才变成 18:00。期望保存返回后就能显示新时间。请检查保存完成到页面刷新的过程,并结合日志定位原因。

这个描述提供了一条线索:重启后能读到新时间,说明应当优先检查保存与刷新之间的关系,但仍要用代码和日志验证。

如果连续修改还没解决,就先让 AI 停止改代码,列出已经确认的事实、还在猜测的原因,以及下一步用什么日志验证。否则几轮“我找到原因了”,可能只是换着方式试。

编译报错则让它读完整日志,找到导致失败的具体位置。鸿蒙接口拿不准,要对照当前 SDK 和官方文档确认。模型写出的属性名再像真的,也不能代替编译器和文档。

五、怎么知道 AI 真的做完了?拿操作结果验收

这是我觉得新手最值得养成的习惯:收到“已完成”,接着看它完成了什么。

构建成功,说明代码通过了相应的编译检查;应用装上了,才有条件继续检查运行效果。至于保存、刷新和删除是否正确,要走实际操作才能知道。

拿宝贝日程表来说,可以把检查写成这样:

检查场景要看到的结果
新增课程后,关闭再打开 App刚保存的课程仍然存在
修改课程时间,再切换页面今天页、课表页显示同一份新时间
桌面放有对应课程卡片时修改课程卡片按刷新逻辑更新,不能一直保留旧内容
取消一次编辑原数据保持不变
日历权限未授予,保存本地事项本地事项能够保留,同步情况有明确提示
滚到长列表底部最后一条内容和操作区域没有被底栏挡住

这是一组验收方法,不代表表里每个场景都已经在所有设备上验证过。让 AI 汇报时,也应该把已测、未测和失败的部分分开写。

桌面卡片尤其容易漏。它在独立进程中工作,主页面里的变量变了,不会自动传过去。宝贝日程表需要先保存本地数据,再让卡片读取并推送更新。因此只看今天页截图,没法说明卡片也正常。

系统日历则要考虑权限和失败。事项在本地保存了,写入系统日历可能仍然失败;编辑已同步事项时,还要处理旧事件。把这些情况写进验收要求,比等用户碰到再补更省事。

检查前还可以让 AI 回读设备上的包名和版本,确认正在看的是本轮安装的应用。没有连接设备,或者某种系统版本没测过,就留下“未验证”,以后补测。

小白不必一次学会所有测试方法。先从“保存后重开、改完换个入口、取消不能生效”这几条开始,已经能发现不少演示页面里看不出来的问题。

六、从能运行到能下载,还有一段要走

一个人做 App,代码之外的工作也不少:图标、宣传图、应用介绍、签名、包体检查、版本说明,都得有人做。

AI 在这些环节也能帮忙。宝贝日程表用图像生成探索过插图和图标方向,再把选中的方向落实到资源和页面;商店宣传图则使用真实应用截图进行排版。这里要分清,视觉探索图可以大胆试,产品截图要和实际应用对得上。

发版同样适合拆步骤。先检查版本和签名,构建正式包,再核验包内配置,然后进入上传和审核。对鸿蒙应用来说,正式 APP 包外层有 pack.info,里面还包含 HAP;核验时要同时关注内外层的版本、API、设备类型和签名等信息。具体执行可以交给工具,人要知道检查结果。

“已构建”“已上传”“已提交审核”“已经在架”各是一个状态。让 AI 明确报告当前走到哪里,上传和提审也单独交代,别把“帮我打个包”写成一句含糊的“全部搞定”。

走完这些步骤,应用才真正到了用户手里。后面要改什么,也终于有机会从真实使用里得到答案。

对我来说,AI 开发最有用的地方,就是让一个小想法更容易走到这一步。我能少花时间搬代码、贴日志、找工具入口,多花时间看课程录起来是否方便,今天的安排是否一眼能看清。

复杂调试或性能分析时,IDE 仍然可以拿出来用。只是宝贝日程表的日常开发里,我已经很少需要打开它了。

最后给自己的 App 打个广告。如果你也经常在学校课表、兴趣班通知和群消息之间来回翻,欢迎下载体验「宝贝日程表」。校内课程、兴趣班和日常事项可以放在一起看,也有桌面服务卡片,出门前扫一眼就方便很多。

用下来哪里不顺手,欢迎告诉我。录课多点了哪一步,哪个页面不好找,都比一句“功能还可以更丰富”更能帮我决定下一次改什么。

前往华为应用市场,下载「宝贝日程表」

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐