喝水提醒计划:鸿蒙AI应用开发实战——AI健康管家,水润每一天

📅 2026/7/8 1:56:46
喝水提醒计划:鸿蒙AI应用开发实战——AI健康管家,水润每一天
喝水提醒计划鸿蒙AI应用开发实战——AI健康管家水润每一天一、引言水是生命之源但大多数人每天喝水量并不达标。每天应该喝多少水这个看似简单的问题答案却因人而异——体重、活动量、气温等因素都会影响每日所需水量。盲目追求8杯水的标准可能并不适合每个人。喝水提醒计划正是为了解决这一需求而诞生的鸿蒙AI应用。用户只需输入体重和选择活动量低/中/高AI即可根据科学公式计算出每日饮水目标并自动生成7时段的详细饮水计划表让科学饮水变得简单可执行。本文将从应用架构设计、鸿蒙核心技术实现、AI应用亮点等维度深度剖析这款应用的开发全流程。二、应用架构设计Model-Service-Page 三层架构2.1 架构概览┌─────────────────────────────────────────────────────────┐ │ Page 层 (UI) │ │ WaterReminderPage.ets │ │ State 体重计算 / Builder 饮水时间线 / 数据格式化 │ ├─────────────────────────────────────────────────────────┤ │ Service 层 (业务逻辑) │ │ WaterReminderService.ets │ │ 科学饮水计算 / 活动量系数 / 时段分配算法 │ ├─────────────────────────────────────────────────────────┤ │ Model 层 (数据模型) │ │ WaterReminderModel.ets │ │ WaterEntry / WaterData / WRMessage / 常量 │ └─────────────────────────────────────────────────────────┘2.2 Model 层数据结构定义核心数据类WaterEntry单个饮水时段包含时间点和饮水量mlWaterData完整饮水计划包含每日目标和分时段列表关键常量WR_ACTIVITIES3种活动量低/中/高2.3 Service 层科学饮水计算Service 层实现了基于体重和活动量的科学饮水计算getWaterPlan(weight:number,activity:string):WaterData{letmlPerKg30if(activity中){mlPerKg35}elseif(activity高){mlPerKg40}constgoalMlMath.round(weight*mlPerKg)// 按7时段分配consttimes[08:00,10:00,12:00,14:00,16:00,18:00,20:00]constportions[0.15,0.15,0.15,0.15,0.15,0.15,0.10]// 计算每个时段的饮水量}2.4 Page 层UI展示Page 层实现了体重输入、活动量选择等交互以及饮水目标展示和分时段饮水时间表。三、鸿蒙技术深度解析3.1 State 体重计算本应用的核心是一个数学计算——根据体重和活动量计算出每日饮水量StateselectedWeight:string60// 体重输入StateselectedActivity:string// 活动量选择StatecurrentData:WaterData|nullnull// 饮水计划结果体重输入使用 TextInput 组件并限制为数字输入类型TextInput({text:this.selectedWeight,placeholder:请输入体重kg}).type(InputType.Number)// 限制数字输入.onChange((val:string){this.selectedWeightval})计算触发当体重和活动量都输入后生成按钮出现if(this.selectedWeight!this.selectedActivity!){Text(生成饮水计划)// ....onClick((){this.onGenerate()})}数值安全处理在生成时进行数值校验防止非法输入constweightparseInt(this.selectedWeight)constdatathis.service.getWaterPlan(isNaN(weight)?60:weight,this.selectedActivity)3.2 Builder 饮水时间线饮水计划结果通过 Builder 构建为直观的时间线展示BuilderbuildResultCard(data:WaterData){Column(){// 目标展示Column(){Text( 每日饮水目标)Text(${data.goal_ml}ml).fontSize(36).fontWeight(FontWeight.Bold).fontColor(COLOR_PRIMARY)Text(约 ${Math.round(data.goal_ml / 250)} 杯250ml/杯)}// 分时段计划Text(⏰ 分时段饮水计划)ForEach(data.schedule,(entry:WaterEntry,idx:number){Row(){Text(entry.time)// 时间点Text(${entry.ml}ml)// 饮水量Text(█.repeat(Math.max(1,Math.round(entry.ml/100))))// 进度条}})}}时间线设计的亮点目标饮水量以大号字体36号突出显示视觉冲击力强自动换算杯数250ml/杯让用户更直观理解每个时段使用文本进度条█字符直观展示饮水量比例交替背景色奇偶行不同提高可读性3.3 数据格式化显示目标饮水量和时段饮水量的显示采用了格式化处理// 目标展示Text(${data.goal_ml}ml).fontSize(36).fontWeight(FontWeight.Bold)// 杯数换算Text(约 ${Math.round(data.goal_ml / 250)} 杯250ml/杯)// 进度条可视化Text(█.repeat(Math.max(1,Math.round(entry.ml/100))))数据格式化的设计大号数字突出核心信息附加热量换算提供辅助参考文本进度条提供可视化对比3.4 Scroll 滚动展示饮水计划结果包含7个时段使用 Scroll 确保所有内容可滚动查看if(this.currentData!null){Scroll(){Column(){this.buildResultCard(this.currentData)}.padding({bottom:20})}.layoutWeight(1).scrollBar(BarState.Off)}四、AI 应用亮点分析4.1 体重×30-35ml科学计算应用采用国际通用的饮水计算公式每日饮水量 体重(kg) × 每公斤体重需水量(ml)基准值每公斤体重30ml低活动量30ml/kg中活动量35ml/kg高活动量40ml/kg计算示例60kg 低活动量60 × 30 1800ml60kg 中活动量60 × 35 2100ml60kg 高活动量60 × 40 2400ml4.2 活动量系数上浮活动量系数的设计体现了科学个性化的考量letmlPerKg30if(activity中){mlPerKg35// 上浮16.7%}elseif(activity高){mlPerKg40// 上浮33.3%}活动量说明低活动量久坐办公、少运动30ml/kg中活动量偶尔运动、站立工作35ml/kg高活动量经常运动、体力劳动40ml/kg4.3 7时段自动分配系统将每日总饮水量按比例分配到7个时段形成科学的饮水计划consttimes[08:00,10:00,12:00,14:00,16:00,18:00,20:00]constportions[0.15,0.15,0.15,0.15,0.15,0.15,0.10]分配逻辑早8点到晚6点每2小时饮水一次每次占总量的15%晚8点最后一次饮水占总量的10%睡前减少饮水避免夜起7个时段均匀分布覆盖全天主要活动时间五、关键技术挑战与解决方案5.1 挑战一数值输入的安全校验挑战用户可能输入非数字或负值需要安全处理。解决方案TextInput 设置type(InputType.Number)限制数字输入解析时使用isNaN校验非法值时使用默认值60体重为0或负数时自动重置为605.2 挑战二饮水量的直观展示挑战单纯的数字不够直观用户需要视觉化的对比。解决方案大号数字展示目标量自动换算为杯数250ml/杯使用文本进度条█字符展示每个时段的相对水量交替背景色增强可读性5.3 挑战三时段分配的科学性挑战饮水时段需要科学合理避免睡前大量饮水。解决方案最后时段20:00分配比例最低10%白天时段均匀分配15%每个时段间隔2小时便于记忆和执行六、用户交互体验设计6.1 青色的健康主题应用采用青色系配色#ECFEFF背景、#06B6D4主题色传递清新、健康的品牌调性constCOLOR_BG#ECFEFFconstCOLOR_PRIMARY#06B6D4constCOLOR_SELECTED_BG#CFFAFE6.2 简洁的输入流程体重输入数字键盘自动弹出输入便捷活动量选择三种活动量标签一键选择6.3 直观的结果展示目标量以超大数字展示一目了然时段列表以时间线样式呈现进度条直观对比各时段水量七、总结喝水提醒计划应用展示了鸿蒙 ArkTS 在健康领域的应用潜力三个核心技术亮点值得关注科学饮水计算基于体重×30-35ml/kf的权威公式结合活动量系数Builder 饮水时间线将饮水计划渲染为直观的时间线视图数据格式化展示大号数字、杯数换算、文本进度条等多维展示未来展望未来可以添加饮水提醒通知定时推送、饮水记录追踪、历史数据分析、天气温度自适应调整等功能打造更智能的饮水健康助手。