NutriScan 是一款基于 HarmonyOS(ArkTS)的饮食扫描应用,主打「打开即扫描」:用户对准食物拍照,应用自动识别食物并记录饮食数据。应用按 Stage 模型构建,包含扫描、识别结果、饮食日记、设置、相册导入等页面;识别能力采用可切换的多 Provider 架构,支持 mock 调试、HTTP 联调与 AGC 云端生产三种模式,生产环境通过华为 AGC 云函数调用视觉识别 API。本地使用数据库保存饮食记录,支持历史回顾与日常饮食管理,为个人营养健康管理提供便捷入口。
我独立完成该应用的架构设计与功能开发。应用采用 ArkTS(TypeScript 方言)+ ArkUI 构建,按页面层、服务层、数据层分层组织;识别能力通过 RecognitionService 与 ProviderFactory 抽象,实现 mock/http/agc 三种识别模式的可配置切换,生产环境走华为 AGC 云函数调用视觉识别 API。开发难点在于真机识别的云端接入与模式切换,我通过统一 Provider 接口 + 运行时配置解决,避免硬编码密钥并支持平滑升级。应用已配置 hvigor 命令行构建,可产出 HAP 安装包供真机运行验证。