基于 Harmony 6.0 应用的考公刷题与公告推送应用首页实现
基于 Harmony 6.0 应用的考公刷题与公告推送应用首页实现
前言
考公是过去几年最热门的职业选择之一——稳定、体面、有保障,但竞争激烈到 1:300 的录取比是常态。一款好的考公应用要把"距考试 / 每日刷题 / 公告推送 / 行测申论"四件事在一屏内全部铺到。Harmony 6.0 时代,考公类应用迎来了几个独特的能力红利——PushKit 提供职位招考公告精准推送、HMS Cloud 让题库云端存储、AI 助手能力提供申论批改、分布式数据让多端进度同步、桌面服务卡片让倒计时常驻。本文用 Flutter 在 Harmony 6.0 上实现一个考公刷题首页。
背景
考公类应用的视觉关键词是"严肃、激励、专业"——靛蓝色 #4338CA 配橙色 #F97316 是这类应用的合适主色。本项目首页 5 个模块:渐变 Header(距考试 + 大刷题按钮)、4 大科目(行测 / 申论 / 面试 / 公基)、最新公告列表、本月练习数据、推荐课程。
Flutter × Harmony 6.0 跨端开发介绍
Harmony 6.0 在考公类应用上的能力栈完整——PushKit 提供高优先级公告推送(错过职位招考报名就来不及)、HMS Cloud 让题库云端备份、AI 助手能力提供申论批改、分布式数据让多端学习进度同步、HealthKit 让学习时长进入档案。
开发核心代码
代码一:倒计时 Header
Widget_header(){returnContainer(padding:constEdgeInsets.all(20),decoration:BoxDecoration(gradient:constLinearGradient(colors:[_primary,Color(0xFF312E81)],begin:Alignment.topLeft,end:Alignment.bottomRight),borderRadius:BorderRadius.circular(24),),child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[constRow(children:[Icon(Icons.school,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:_accent,borderRadius:BorderRadius.all(Radius.circular(6))),child:Text('国考',style:TextStyle(color:Colors.white,fontSize:11,fontWeight:FontWeight.w800)),),]),constSizedBox(height:14),constText('距 2026 国考还有',style:TextStyle(color:Colors.white70,fontSize:13)),constSizedBox(height:4),constRow(crossAxisAlignment:CrossAxisAlignment.end,children:[Text('186',style:TextStyle(color:Colors.white,fontSize:60,fontWeight:FontWeight.w900)),SizedBox(width:8),Padding(padding:EdgeInsets.only(bottom:14),child:Text('天',style:TextStyle(color:Colors.white,fontSize:20,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.edit,color:_primary,size:22),SizedBox(width:6),Text('开始今日刷题(剩 80 题)',style:TextStyle(color:_primary,fontSize:16,fontWeight:FontWeight.w800)),],)),),]),);}倒计时是这类 App 最值得做成桌面服务卡片的元素——每天解锁手机看到"还有 186 天"激励学习。
从「倒计时 Header」的备考紧迫感与长期目标设计角度再补一段。公考类应用的 Header 必须把「距离考试还有多久」做成视觉中心。这段 Header 用红色到深红的紧迫渐变,配合大字号倒计时、今日学习任务和「开始刷题」按钮,让用户每天打开都被时间感驱动。如果未来要扩展支持「多考试倒计时」,可以加省考、国考、事业单位 chip。鸿蒙 6.0 的 FormExtensionAbility 能把倒计时放到桌面,形成持续提醒。
代码二:4 大科目
Widget_subjects(){finalitems=const[[Icons.calculate,'行测',_primary],[Icons.edit_note,'申论',_accent],[Icons.record_voice_over,'面试',_amber],[Icons.menu_book,'公基',_green],];returnContainer(padding:constEdgeInsets.all(14),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(16)),child:Row(children:items.map((it){finalc=it[2]asColor;returnExpanded(child:Column(children:[Container(width:48,height:48,decoration:BoxDecoration(color:c.withValues(alpha:0.14),borderRadius:BorderRadius.circular(14)),child:Icon(it[0]asIconData,color:c,size:22),),constSizedBox(height:8),Text(it[1]asString,style:constTextStyle(color:_ink,fontSize:12,fontWeight:FontWeight.w600)),]));}).toList()),);}4 大科目(行测、申论、面试、常识)覆盖公考备考的核心模块。每个科目对应不同训练方法,行测重速度,申论重结构,面试重表达,常识重积累。
从「4 大科目」的备考路径与学习资源组织角度再补一段。公考备考最怕眉毛胡子一把抓,科目入口能帮助用户把复习拆成明确模块。每个科目下应展示今日任务、正确率和薄弱点,形成闭环。如果未来要扩展支持「AI 组卷」,可以根据用户薄弱科目自动生成每日练习。鸿蒙 6.0 的端侧 AI 能做错题归因,不必上传敏感学习数据。
代码三:最新公告
Widget_notice(Map<String,dynamic>n){returnContainer(margin:constEdgeInsets.only(bottom:10),padding:constEdgeInsets.all(14),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(14),border:Border(left:BorderSide(color:_primary,width:4))),child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[Row(children:[Container(padding:constEdgeInsets.symmetric(horizontal:6,vertical:2),decoration:BoxDecoration(color:_primary.withValues(alpha:0.14),borderRadius:BorderRadius.circular(4)),child:Text(n['type']asString,style:constTextStyle(color:_primary,fontSize:10,fontWeight:FontWeight.w800)),),constSizedBox(width:6),Text(n['date']asString,style:constTextStyle(color:_sub,fontSize:11)),]),constSizedBox(height:8),Text(n['title']asString,style:constTextStyle(color:_ink,fontSize:14,fontWeight:FontWeight.w700)),],),);}公告通过 PushKit 高优先级推送——职位招考公告时效性强,错过几天报名就关闭了。
从「最新公告」的信息时效与报名提醒设计角度再补一段。公考公告列表必须展示招考单位、报名时间、考试时间、岗位数和地区,让用户快速判断是否值得报名。报名截止日期应高亮,临近截止的公告排在最前。如果未来要扩展支持「岗位匹配」,AI 可以根据专业、学历、地区自动筛选可报岗位。鸿蒙 6.0 的 PushKit 高优先级提醒能显著降低错过报名窗口的概率。
心得
考公类 App 的视觉灵魂是"严肃 + 激励"——靛蓝色给政府专业感,倒计时大字号给压力。开发时最容易犯的错是把申论批改做得过于粗糙。我的策略是用 AI 助手提供精准批改。从能力扩展角度,考公应用最值得在鸿蒙端打造的是"PushKit 公告推送 + HMS Cloud 题库 + AI 助手申论批改 + 分布式数据多端同步"四件套。
总结
本篇实现了 Harmony 6.0 端的考公刷题首页,5 个模块、纯 UI、零依赖、约 340 行代码。从扩展角度建议生产业务里:把公告推送接入 PushKit;把题库接入 HMS Cloud;把申论批改接入 AI 助手;把"距考试"做成 FormExtensionAbility 桌面卡片;把进度接入分布式数据。下一篇是第四十六组的第二块——职业技能培训平台。
