拒绝冷冰冰的代码:我是如何用鸿蒙 ArkUI 打造一款“懂你”的智慧记事本的
在应用开发中,我们常陷于“实现功能”的逻辑泥潭,而忽略了屏幕背后那个真实的人。本文将以一款基于 HarmonyOS (ArkTS) 开发的《智慧记事本》为例,探讨如何从视觉感知、操作习惯、场景上下文和交互流畅度四个维度,利用技术手段提升用户体验。
摘要:在应用开发中,我们常陷于“实现功能”的逻辑泥潭,而忽略了屏幕背后那个真实的人。本文将以一款基于 HarmonyOS (ArkTS) 开发的《智慧记事本》为例,探讨如何从视觉感知、操作习惯、场景上下文和交互流畅度四个维度,利用技术手段提升用户体验。
引言:用户不关心数据库,他们只关心“感觉”
作为开发者,我们习惯于思考:“这个数据怎么存 Preferences?”、“这个 API 怎么调?”。但用户在使用 App 时,他们的潜台词是:“我不想思考”、“快点帮我解决问题”。
最近我在开发一款鸿蒙原生应用——智慧记事本。在开发过程中,我尝试跳出纯代码思维,转而从用户视角审视架构设计。我发现,优秀的技术实现,往往是为了满足人性化的需求。
以下是我在这个项目中的四个关键设计思考。
思考一:视觉即逻辑——让色彩替用户“思考”
在设计待办事项 (Todo) 模块时,我最初的逻辑是:只要把截止日期显示出来就行了。但从用户角度看,对着一堆 2026-01-09 14:00 的数字发呆是痛苦的。用户真正想知道的是:“哪个最急?”
💡 解决方案:动态色彩语义
我利用 ArkUI 的状态驱动特性,将时间的紧迫程度映射为色彩。
-
红色:已过期/即将截止(警示,产生紧迫感)。
-
蓝色:进行中(冷静,按部就班)。
-
灰色:已完成(低调,不再干扰视线)。

🛠️ 代码实现
在 TodoItemCard 组件中,我没有写死颜色,而是根据 timestamp 与当前时间的差值动态计算:

设计哲学:不要让用户做数学题,用直觉化的设计直接传递信息。
思考二:AI 不应是答录机,而应是“懂你的秘书”
现在很多 App 都接了 AI,但大多数只是塞进去一个类似 ChatGPT 的通用聊天框。用户问:“我该做什么?”,AI 答:“这取决于你的计划。” —— 这是无效的交互。
真正的智能,是 Context Awareness(上下文感知)。

💡 解决方案:上下文注入 (Prompt Injection)
在我的 AiDialog 组件中,用户不需要重复输入自己的任务。系统会在后台默默地将当前的“待办清单”打包,变成 AI 的一部分记忆。
🛠️ 代码实现

效果:当用户问“规划一下今天的安排”,AI 会直接回答:“你今天下午 2:00 有个作业要交,建议先处理这个,然后再去……”
设计哲学:聪明的应用懂得利用本地数据,减少用户的输入成本。
思考三:流畅度是信任的基石——动效与预加载
如果一个 App 点击按钮后生硬地闪现,或者打开时白屏一秒,用户会潜意识觉得“它不稳定”。
💡 解决方案 1:微交互动画
我利用 ArkUI 的 animateTo 和 TransitionEffect,让列表的增删、展开都有了物理世界的惯性。

💡 解决方案 2:生命周期的前置管理
为了避免用户进入首页看到“数据闪烁”或“白屏”,我在 EntryAbility 的系统启动阶段就完成了脏活累活。

设计哲学:性能优化不仅仅是技术指标,更是用户体验的第一道防线。
思考四:习惯即直觉——尊重用户的“肌肉记忆”
为什么有的 App 上手即用,有的却需要看说明书?雅各布定律(Jakob's Law)告诉我们:用户将大部分时间花在其他应用上,因此他们希望你的应用也能以同样的方式运作。
在设计“删除笔记”这个功能时,我本可以在卡片上放一个显眼的垃圾桶图标。但这既占空间,又容易误触。我选择尊重用户在微信、系统备忘录等主流软件中养成的习惯:长按唤出菜单。
💡 解决方案:无感过渡交互
利用手势操作隐藏高危功能(删除),既保持了界面的极简(Clean UI),又让用户凭直觉就能找到功能入口。

设计哲学:最好的交互设计是“隐形”的,让用户不需要改变习惯就能无缝过渡。
结语
开发《智慧记事本》的过程让我明白,技术是骨架,但设计思维是血肉。
-
我们使用
Preferences,是为了保存用户的记忆。 -
我们接入
LLM,是为了理解用户的焦虑。 -
我们打磨
ArkUI动画,是为了尊重用户的操作。 -
我们复用长按手势,是为了尊重用户的习惯。
作为开发者,当我们开始从“用户如何使用”而不是“代码如何运行”去思考时,我们写出的每一行代码,才真正有了温度。
更多推荐




所有评论(0)