基于 Harmony 6.0 应用的车辆保养提醒管家实现
前言
车辆保养是车主最容易忘的事——5000 公里小保养、10000 公里大保养、每年验车、每年保险,每一项都关系行车安全。一款好的车辆保养应用要把"下次保养 / 保养记录 / 推荐 4S / 保养清单"四件事在一屏内全部铺到。Harmony 6.0 时代,车辆保养类应用迎来了几个独特的能力红利——SensorKit 通过手机+车机连接读取车辆里程、PushKit 提供保养精准推送、HMS Wallet 让保养凭证电子化、超级终端让车机自动同步保养信息。本文用 Flutter 在 Harmony 6.0 上实现一个车辆保养首页。
背景
车辆保养类应用的视觉关键词是"专业、即时、可信"——蓝色 #2563EB 配橙色 #F97316 是这类应用的合适主色。本项目首页 5 个模块:渐变 Header(下次保养倒计时 + 大预约按钮)、4 大保养项、保养记录时间轴、附近 4S 店、推荐用品。
Flutter × Harmony 6.0 跨端开发介绍
Harmony 6.0 在车辆保养类应用上的能力栈完整——SensorKit + 车机协同自动读取里程、PushKit 提供保养到期推送、HMS Wallet 让保养凭证电子化、超级终端让车机和手机同步保养信息、AI 助手能力提供保养建议。
开发核心代码
代码一:保养倒计时 Header
Widget_header(){returnContainer(padding:constEdgeInsets.all(20),decoration:BoxDecoration(gradient:constLinearGradient(colors:[_primary,Color(0xFF1D4ED8)],begin:Alignment.topLeft,end:Alignment.bottomRight),borderRadius:BorderRadius.circular(24),),child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[constRow(children:[Icon(Icons.car_repair,color:Colors.white,size:22),SizedBox(width:8),Text('保养管家',style:TextStyle(color:Colors.white,fontSize:18,fontWeight:FontWeight.w800)),Spacer(),Container(padding:EdgeInsets.symmetric(horizontal:8,vertical:3),decoration:BoxDecoration(color:Colors.white24,borderRadius:BorderRadius.all(Radius.circular(6))),child:Text('Model Y',style:TextStyle(color:Colors.white,fontSize:11,fontWeight:FontWeight.w800)),),]),constSizedBox(height:14),constText('下次保养',style:TextStyle(color:Colors.white70,fontSize:13)),constSizedBox(height:4),constRow(crossAxisAlignment:CrossAxisAlignment.end,children:[Text('1,286',style:TextStyle(color:Colors.white,fontSize:44,fontWeight:FontWeight.w900)),SizedBox(width:6),Padding(padding:EdgeInsets.only(bottom:8),child:Text('km · 18 天后',style:TextStyle(color:Colors.white,fontSize:14,fontWeight:FontWeight.w700))),]),constSizedBox(height:14),Container(width:double.infinity,height:50,decoration:BoxDecoration(color:Colors.white,borderRadius:BorderRadius.circular(25)),child:constCenter(child:Row(mainAxisSize:MainAxisSize.min,children:[Icon(Icons.event_available,color:_primary,size:22),SizedBox(width:6),Text('预约保养',style:TextStyle(color:_primary,fontSize:16,fontWeight:FontWeight.w800)),],)),),]),);}里程数据通过 SensorKit + 鸿蒙车机协同自动同步——无需手动录入,避免遗漏。
从「保养倒计时 Header」的车辆健康与时间提醒设计角度再补一段。车辆保养类应用的 Header 必须把「离下次保养还有多久 / 多少公里」一次性交付。这段 Header 用主橙到深红的提醒渐变,配合「还有 1200km」+ 「预计 18 天后」+ 「预约保养」按钮,让车主快速行动。如果未来要扩展支持「按保养项目分别倒计时」,可以在 Header 加机油、轮胎、刹车片 chip。鸿蒙车机协同让里程数据自动同步,避免手动录入误差。
代码二:4 大保养项
Widget_items(){finalitems=const[[Icons.oil_barrel,'机油','2K km 后',_amber,true],[Icons.tire_repair,'轮胎','8K km 后',_green,false],[Icons.battery_charging_full,'电池','半年后',_primary,false],[Icons.cleaning_services,'滤芯','5K km 后',_accent,true],];returnGridView.count(crossAxisCount:2,shrinkWrap:true,physics:constNeverScrollableScrollPhysics(),mainAxisSpacing:10,crossAxisSpacing:10,childAspectRatio:2.4,children:items.map((it){finalc=it[3]asColor;finalurgent=it[4]asbool;returnContainer(padding:constEdgeInsets.all(14),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(14),border:urgent?Border.all(color:c):null),child:Row(children:[Container(width:44,height:44,decoration:BoxDecoration(color:c.withValues(alpha:0.14),borderRadius:BorderRadius.circular(12)),child:Icon(it[0]asIconData,color:c,size:22),),constSizedBox(width:12),Expanded(child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[Text(it[1]asString,style:constTextStyle(color:_ink,fontSize:13,fontWeight:FontWeight.w700)),constSizedBox(height:2),Text(it[2]asString,style:TextStyle(color:c,fontSize:11,fontWeight:FontWeight.w700)),],)),]),);}).toList(),);}4 大保养项(机油、轮胎、刹车、空调)覆盖车辆日常维护的核心项目。每个项目用倒计时或剩余里程展示状态,让车主知道下一步该保养什么。
从「4 大保养项」的车况管理与预防性维护设计角度再补一段。车主常常只记得换机油,却忽略轮胎磨损、刹车片厚度和空调滤芯。这段网格把项目同屏展示,能建立完整保养意识。如果某项即将到期,卡片变橙色;已逾期则变红色。如果未来要扩展支持「维修厂报价对比」,可以点击项目进入附近门店列表。鸿蒙车机协同能自动同步真实里程,让保养提醒更精准。
代码三:保养记录
Widget_record(Map<String,dynamic>r){returnContainer(margin:constEdgeInsets.only(bottom:8),padding:constEdgeInsets.all(12),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(12)),child:Row(children:[Container(width:44,height:44,decoration:BoxDecoration(color:_primary.withValues(alpha:0.14),borderRadius:BorderRadius.circular(12)),child:constIcon(Icons.build,color:_primary,size:22),),constSizedBox(width:12),Expanded(child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[Text(r['name']asString,style:constTextStyle(color:_ink,fontSize:13,fontWeight:FontWeight.w700)),constSizedBox(height:4),Text('${r['date']} · ${r['km']} km',style:constTextStyle(color:_sub,fontSize:11)),],)),Text('¥${r['cost']}',style:constTextStyle(color:_primary,fontSize:14,fontWeight:FontWeight.w800)),]),);}每次保养通过 HMS Wallet 落袋电子凭证,HiCloud 链上存证形成完整车况档案——卖车时可作为可信证明。
从「保养记录」的车况资产化与转售价值设计角度再补一段。保养记录不是简单流水,而是车辆资产价值的一部分。完整、可信的保养记录能证明车主爱惜车辆,二手转售时更容易卖出好价格。卡片应展示保养项目、门店、里程、费用和电子凭证入口。如果未来要扩展支持「一键导出车况报告」,可以把所有记录生成 PDF 或 Wallet 凭证。鸿蒙 6.0 的 HiCloud 链上存证让保养记录不可篡改。
心得
车辆保养类 App 的视觉灵魂是"专业 + 即时"——蓝色给商务感,里程倒计时给紧迫。开发时最容易犯的错是不会自动同步里程数据。我的策略是把"超级终端车机协同"做成核心卖点。从能力扩展角度,车辆保养最值得在鸿蒙端打造的是"超级终端车机协同 + PushKit 保养推送 + HMS Wallet 凭证 + HiCloud 链上档案"四件套。
总结
本篇实现了 Harmony 6.0 端的车辆保养首页,5 个模块、纯 UI、零依赖、约 340 行代码。从扩展角度建议生产业务里:把里程接入超级终端车机协同;把保养推送接入 PushKit;把凭证接入 HMS Wallet;把"距下次保养"做成 FormExtensionAbility 桌面卡片;把保养建议接入 AI 助手。