已开启
提交 NutriLog(智能饮食记录与营养管理)APPDEMO #474
chn9528创建于 23 天前
提交 NutriLog(智能饮食记录与营养管理)APPDEMO #474
已开启
chn9528创建于 23 天前
chn9528
chn9528成员
23 天前

相关的Issue

https://gitcode.com/openharmony/codelabs/issues/120

原因(目的、解决的问题等)

“智能饮食记录与营养管理 — 基于 OpenHarmony 开发的饮食记录与营养分析工具。
目的是通过一个完整可运行的工程,验证并掌握 OpenHarmony 应用开发的核心能力,同时为用户提供饮食健康管理工具。
应用本身解决了“饮食记录与营养分析”问题:按餐次记录饮食,自动换算热量与三大营养素,配合饮水管理、周报图表与 BMI 评估,让用户的每日营养摄入可量化、可追踪。

描述(做了什么,变更了什么)

一、应用实现的功能
按餐次(早餐/午餐/晚餐/加餐)记录饮食,支持份数调整与营养自动重算;内置60+ 食物数据,提供分类浏览、搜索、收藏、最近使用与自定义添加;首页以热量环、
营养素卡片、饮水进度条展示当日概况;统计页以饼图/柱状图输出周报;个人中心支持资料编辑、BMI 分级评估与目标设置;数据通过 RDB 与 preferences 本地持久化。
二、用到的 SDK 接口(@kit.*)

  1. @kit.ArkData:依托relationalStore完成数据表创建、索引配置、多条件查询、批量写入、原生SQL聚合统计等复杂数据库操作,通过getRdbStore、RdbPredicates、batchInsert、executeSql等接口实现业务CRUD与数据统计;借助preferences读写用户个性化配置、健康目标等轻量数据,实现本地持久化存储。
  2. @kit.ArkUI:采用Navigation+NavPathStack实现全局单页路由架构,替代传统简单页面跳转;通过Tabs搭建底部导航,List+LazyForEach+IDataSource实现列表高性能懒加载;使用Gauge、Progress完成进度可视化,TextInput、TextPicker搭建业务表单;通过CustomDialog及bind系列方法实现多形态弹窗、浮层交互;依托eventHub、uiObserver实现跨层级、跨组件事件通信与全局UI自动刷新,属于工程化组件解耦开发方案,官方Codelabs无同类落地示例。
  3. @kit.AbilityKit:运用UIAbility生命周期与UIAbilityContext全局上下文,支撑应用初始化、数据库预加载、全局路由挂载等核心前置业务。
  4. @kit.PerformanceAnalysisKit:通过hilog分级日志,对核心业务流程与异常信息进行统一记录与调试。
  5. 第三方 @mcui/mccharts:引入专业图表组件库,通过McPieChart、McBarChart实现饮食周报可视化渲染,弥补原生图表能力的不足。

三、掌握的技术

  1. 基于Stage模型开发,采用Navigation单页多路由架构,通过@Provide/@Consume全局共享navPathStack路由栈,实现规范化全局页面路由管理。
  2. 熟练掌握relationalStore数据库工程化设计,自主设计food、meal_record、water_record、favorite四张业务关联数据表,配置索引与版本管理,封装waitForInit异步锁解决数据库初始化竞态问题,适配复杂业务数据读写。
  3. 灵活运用全套ArkUI响应式状态管理,组合@State/@Prop/@Link/@Watch/@Observed/@ObjectLink装饰器,适配各类页面数据与组件联动更新场景。
  4. 实现专业化数据统计与可视化,通过GROUP BY完成周维度数据聚合,对空白时段零值填充保证报表完整,结合第三方图表库完成统计图渲染与个性化配置。
  5. 常用工程实践:实现搜索防抖、大数据列表懒加载、数据库增量差分更新、表单校验与输入过滤;依托eventHub、uiObserver完成跨组件事件驱动刷新与组件解耦,该工程化通信优化方案在Codelabs仓库无对应Demo,有效降低项目耦合度、提升应用稳定性。

测试用例(新增、改动、可能影响的功能)

本项目共 86 条功能测试用例,覆盖 11 个模块(应用启动与数据初始化、首页、饮水管理、食物库、添加记录、自定义食物、统计周报、历史记录、编辑记录、 个人中心、数据持久化);
不影响现有仓库其他功能。

测试报告路径:
ExcellentCase\nutrilogapp_release\测试报告

likedislike
合并受阻
chn9528chn9528成员
23 天前 关联了issue:新增NutriLog(膳食)AppDemo
openharmony_ciopenharmony_ci成员
23 天前 添加了label:waiting_on_author
openharmony_ci
openharmony_ci成员
23 天前 评论:

感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接


Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.

likedislike
openharmony_ciopenharmony_ci成员
23 天前 添加了label:dco检查成功
chn9528chn9528成员
23 天前 推送  1 个提交:aadfdfe9-提交 NutriLog(膳食)APPDEMO
此处折叠了117条消息 查看更多
chn9528chn9528成员
21 天前 修改了pull request 的描述
chn9528chn9528成员
21 天前 修改了pull request 的描述
chn9528chn9528成员
21 天前 修改了pull request 的描述
chn9528chn9528成员
21 天前 修改了pull request 的描述
chn9528chn9528成员
21 天前 修改标题为 “提交 NutriLog(智能饮食记录与营养管理)APPDEMO”,原标题为“提交 NutriLog(膳食)APPDEMO”