一、项目介绍
作为开发者,我一直觉得:很多面向老人的软件,要么功能太复杂,要么界面像上个世纪,要么就是打着 "关怀" 旗号做一堆花里胡哨的东西,老人根本用不明白。
这次我基于 HarmonyOS,从零做了一套专为老年人设计的智能服务 APP,把「老人用得懂、用得放心、用得安全」当成第一目标,从预约到服务全流程做了深度适配。今天就把我打磨的核心功能,一次性分享给大家👇
很多老人怕用 APP,就是怕 "点错"。所以整个预约模块,我做了极简、强约束、无歧义的设计,从根源上降低操作门槛。
1. 预约核心规则:每一步都帮老人 "踩好刹车"
我没有做那种复杂的预约逻辑,而是把规则简化到老人一眼能懂:
- 预约限制:不支持当日预约,只能预约次日及以后的日期,避免老人临时操作手忙脚乱,也给服务人员留出充足的准备时间。
- 时间精度:不用选 "几点几分",只需要选「年月日 + 固定时间段」,老人不用纠结 "要不要凑整",也不会因为选不准时间而焦虑。
- 适用对象:仅支持老人本人预约,从源头避免他人代操作带来的信息泄露、误预约风险,保护老人的账号安全。
- 预约模式:采用「老人线上点单式」,全程勾选服务→选时间→提交,没有多余的弹窗、广告、跳转,一步一步引导老人完成,完全不用动脑子。
2. 预约操作流程:跟线下排队一样简单
整个流程我反复打磨了好几次,最终保留了最核心的步骤:
- 老人用自己的账号登录 APP,直接进入预约页面,没有多余的 "首页推荐"。
- 选择服务类型(后面会详细说每一类服务),页面会用大号字体、图标展示选项,不会用密密麻麻的文字堆在一起。
- 选择预约日期:系统会自动把当日标灰禁用,只能点次日及以后的日期,彻底避免老人选错日期。
- 选择具体时段:系统预设了固定的可预约时段,最晚到 19:00,不影响老人的作息,也保障服务的安全。
- 提交预约,等待志愿者接单,全程没有隐藏按钮,也不会突然弹出 "是否开通会员" 之类的干扰项。
3. 预约时间选择:把 "怕选不准" 的焦虑彻底消除
我特意给老人做了双重防错设计:
- 日期选择:日历控件里,当日日期直接灰色禁用,只有次日及未来的日期可以点击,老人一眼就知道 "今天不能约,只能约明天之后的",不会因为选错日期而白忙活。
- 时段选择 :系统固定了安全的预约时段,而且都标注得清清楚楚:
- 上午:09:00-11:00
- 下午:14:00-16:00
- 傍晚:16:00-18:00
- 晚间:18:00-19:00最晚到 19:00 结束服务,既不打扰老人休息,也避免志愿者晚上上门带来的安全隐患。
预约点单服务:覆盖老人生活全场景,按需勾选不踩雷
这部分是整个 APP 的核心,我把老人日常会遇到的需求,拆成了 6 大类,每一类都只保留实用、刚需的选项,老人想约什么,直接打勾就行,不用自己写备注。
1. 情感陪伴类:不止是 "陪聊天",更是解闷儿
很多老人最缺的不是物质,是能说上话的人。这一类服务我没有做得很空泛,而是覆盖了老人真正喜欢的内容:
- 日常陪聊谈心、唠家常:听老人讲过去的事,陪老人说说话,缓解没人说话的孤独感。
- 读报纸、读故事、念文章:帮眼神不好的老人读新闻、读杂志,不用自己费力看小字。
- 陪伴听歌、听戏、回忆往事:放老人喜欢的老歌、戏曲,陪老人一起回忆年轻时的故事。
- 节日陪伴、生日慰问:过年过节、过生日的时候上门陪老人热闹一下,不让老人一个人冷清过节。
- 心理安抚、缓解孤独情绪:遇到老人情绪低落的时候,志愿者会耐心开导,帮老人疏解心情。
2. 生活代办类:跑腿的事,都交给 APP 来解决
老人腿脚不方便,很多小事都难办,这一类服务就是帮老人解决 "出门难、跑腿难" 的问题:
- 代购食材、药品、生活用品:帮老人买新鲜的菜、常备药,还有日用品,不用老人自己扛着东西回家。
- 代缴水电费、话费、燃气费:不用老人自己去营业厅排队,也不用怕线上操作出错,志愿者帮忙代缴,老人只需要核对金额就行。
- 代取快递、外卖、信件:老人不方便下楼的时候,志愿者帮忙取快递、外卖,送到家门口。
- 代送小件物品至社区 / 亲属:老人想给邻居、孩子送点东西,不用自己跑,志愿者帮忙送到地方。
3. 家政帮扶类:做力所能及的事,帮老人减负
我没有设置 "深度家政",而是只保留了老人自己做起来费劲、又刚需的简单家务:
- 简单打扫、桌面整理:帮老人擦擦桌子、整理桌面,不用老人弯腰擦地。
- 衣物叠放、晾晒:帮老人把洗好的衣服叠好、挂好,或者帮忙收衣服,不用老人踮脚、弯腰。
- 浇花、喂宠物、杂物收纳:老人出门或者不方便的时候,帮忙照顾家里的花和宠物,整理一下家里的杂物。
4. 就医协助类:看病的事,有人陪着更安心
很多老人去医院会慌,不知道怎么挂号、怎么取药,这一类服务就是帮老人解决就医的所有麻烦:
- 陪同就医、取药:陪老人一起去医院,全程跟着老人,不让老人一个人跑流程。
- 协助挂号、缴费、拿报告:帮老人在机器上挂号、缴费,取检查报告,不用老人对着机器手足无措。
- 提醒按时吃药、测血压血糖:志愿者会帮忙提醒老人按时吃药,帮老人测血压、血糖,记录数据,方便后续查看。
5. 智能教学类:手把手教老人用手机,再也不怕 "被时代落下"
很多老人怕用智能手机,就是怕学不会、怕被骗,这一类服务就是帮老人慢慢学会用手机:
- 手机使用教学:教老人用微信聊天、视频通话、扫码付款,都是日常最常用的功能,一步步教,不怕学不会。
- 反诈知识、防诈骗教学:给老人讲常见的诈骗套路,教老人怎么识别骗子、怎么保护自己的钱,避免被骗。
- 电视、空调、家电简单操作教学:教老人怎么开电视、调空调,怎么用家里的智能家电,不用怕操作错了弄坏东西。
6. 陪同出行类:出门有人陪,不用怕走丢
老人自己出门不安全,也怕迷路,这一类服务就是陪老人出门办事、散心:
- 陪同散步、逛公园:陪老人在小区里散步,或者去附近的公园逛逛,不用老人一个人出门。
- 陪同买菜、去超市:陪老人一起去菜市场、超市买菜,帮老人拎东西,也能帮老人看看价格,避免被坑。
- 陪同去社区、银行办事:陪老人去社区办业务、去银行取钱、办业务,帮老人处理流程里的问题。
7. 便民协助类:解决老人生活里的 "小麻烦"
这些都是老人生活里不起眼,但又很麻烦的小事,志愿者可以帮忙处理:
- 协助剪指甲、简单护理:帮老人剪指甲,做一些简单的日常护理,不用老人自己费劲。
- 上门理发协助:帮老人预约或者协助上门理发,不用老人自己去理发店排队。
- 临时小件物品帮忙:老人家里有什么临时的小需求,比如换个灯泡、修个小物件,志愿者可以帮忙处理。
预约后续操作:全流程透明,老人随时能掌控
很多老人怕预约了之后 "没人管",也怕改不了、退不了,所以我把预约后的所有操作都做得简单透明,老人自己就能搞定:
- 查看预约:老人可以随时查看自己的预约信息,包括日期、时段、服务内容、接单状态,大字清晰展示,不用到处找。
- 修改预约:仅限预约前 24 小时修改时间 / 服务,既给了老人调整的空间,也避免临时修改给志愿者带来麻烦。
- 取消预约:老人可以提前取消预约,系统会自动释放志愿者的时段,不会影响后续的服务安排,也不用怕 "取消了会被说"。
- 服务评价:服务完成后,老人可以给志愿者进行评价,反馈服务体验,也方便后续优化服务质量。
二、效果图展示



三、代码演示
TypeScript
import promptAction from '@ohos.promptAction';
import router from '@ohos.router';
import MemberInfoTable from '../entity/MemberInfoTable';
import NetBarInfoTable from '../entity/NetBarInfoTable';
import WbHyInfoTable from '../entity/WbHyInfoTable';
@Entry
@Component
struct Index {
//预约服务表对象
private NBIT: NetBarInfoTable = new NetBarInfoTable();
//创建用户信息表对象
private mi:MemberInfoTable=new MemberInfoTable();
//日常监测表对象
private wh:WbHyInfoTable=new WbHyInfoTable();
//轮播图片资源
private imgs: Resource[] = [$r("app.media.load_1"), $r("app.media.load_2"), $r("app.media.load_3")]
//轮播控制器
private sc: SwiperController = new SwiperController();
//在该界面显示之前执行
aboutToAppear() {
//初始化数据库
this.NBIT.getRdbStore(() => {
this.NBIT.query(0, (result) => {
if (String(JSON.stringify(result)) == "[]") {
//添加初始化数据
this.NBIT.initData(()=>{
// promptAction.showToast({message:"数据加载成功"})
})
}
})
this.mi.query(0,(result)=>{
if (String(JSON.stringify(result)) == "[]") {
//添加用户信息
this.mi.initData(()=>{
// promptAction.showToast({message:"会员信息初始化成功"})
})
}
})
this.wh.queryWB(0,(result)=>{
if (String(JSON.stringify(result))=="[]") {
this.wh.initData(()=>{
promptAction.showToast({message:"初始化成功"})
})
}
})
})
}
build() {
Row() {
Column() {
Swiper(this.sc) {
ForEach(this.imgs, (img, index) => {
Image(img).width("99%").height("99%").objectFit(ImageFit.Fill)
.onClick(() => {
if (index == this.imgs.length - 1) {
//判断是否已经滑动到最后一页,并触发点击事件,则跳转进入主页
router.replaceUrl({ url: "pages/login" })
}
})
})
}.loop(false) //不允许循环滑动
.autoPlay(true) //允许自动轮播
.interval(2000) //设置延迟滑动时间,单位毫秒
.indicator(false) //设置不显示导航点
.width("100%").height("100%")
}
.width('100%')
}
.height('100%')
}
}
做这个项目的时候,我一直在想:我们总说要给老人做 "适老化" 产品,但真正的适老化,从来不是把字体放大那么简单。它是要站在老人的角度,想他们怕什么、需要什么,把每一步操作都做到简单、安全、放心。
这个 APP 还在打磨阶段,后续我也会根据用户的反馈,继续优化功能和界面,争取做出一个真正能帮到老人的产品。如果你也是做适老化产品的开发者,或者家里有老人用 APP 的痛点,欢迎在评论区一起交流讨论~