乐于分享
好东西不私藏

我开发完成了一款鸿蒙原生笔记软件memos

我开发完成了一款鸿蒙原生笔记软件memos

我连载了一个原生鸿蒙开发系列,希望通过系列文章带你一同了解我是如何从0开发一款鸿蒙原生软件的,欢迎订阅关注。本篇是完结篇。

  1. 一次持续 12 小时的原生鸿蒙开发调试经历

  2. 我竟然发现了原生鸿蒙的一个底层 bug

  3. Vibe Coding原生鸿蒙软件需要鸿蒙专家上阵

  4. 鸿蒙原生软件界面布局中的那些坑

  5. 鸿蒙原生软件开发之数据同步篇

  6. 鸿蒙原生软件开发之手势的那些坑

HARMONYOS DEV · 收官2026.08.28

我在原生鸿蒙上造了个 memos 客户端 · 临门一脚却选择了让路

系列收官小结 · 一个华为员工、一款备忘录软件、一段“不重复造轮子”的故事。

DOODLE

把脑子里闪过的想法,用最快的方式记下来——然后,你的数据永远属于你自己。

鸿蒙开发系列收官

EDITOR'S NOTE

写在系列最后一篇之前

这一篇,是刘顾问客厅 HarmonyOS 开发系列的收官小结。前面几篇写了备忘录软件开发中一桩桩真实的踩坑与取舍:标签保存、RDB 事务、手势交互、UI 自动化测试基建……而这一篇,讲的是这个项目在临门一脚时,一个出人意料却又理所当然的决定。

如果有一天,你花了大半年,亲手造了一艘船。你画图纸、熬通宵、一遍遍下水试航,修修补补,终于到了准备扬帆起航的那一天。

然后你发现,码头上已经停着一艘更好的船,帆早就挂好了,航线也已经跑起来了。

你会怎么办?

渔夫出海前不知道鱼在哪里,可是他们还是选择了出发,因为他们相信自己会满载而归。人生很多时候,是选择了才有机会,是相信了才有可能。

这就是我想讲的故事。关于一个华为员工,关于一款备忘录软件,关于原生鸿蒙,也关于「不重复造轮子」这句话真正的分量。

01

PART

为什么我要自己写一个 memos 客户端

WHY BUILD IT MYSELF

先交代背景。我是华为公司的一名员工,日常用的设备,大多是华为产品。升级到原生鸿蒙(HarmonyOS NEXT)之后,手机焕然一新,但我发现一个问题——我离不开的一款软件,没有好用的原生客户端

它叫 memos,一个开源的、自托管的碎片化笔记服务。理念很简单:把脑子里闪过的想法,用最快的方式记下来,然后你的数据永远属于你自己。我是它的重度使用者。

一边是离不开的应用,一边是全新的原生鸿蒙生态,两边一撞,念头就起来了:为什么不能自己动手,给 memos 做一个鸿蒙原生客户端?

于是,我开始了。用原生ArkTS 架构,从零到一。

02

PART

我造出了什么

WHAT I BUILT

我给软件起名 Memos 笔记(Memos Note),包名 com.memos.app。一句话简介:轻量自托管笔记客户端:本地优先、离线可写,数据由你掌控。

几个自认为还拿得出手的亮点:

 数据自主,隐私优先 

自托管:连接你自己的 memos 服务器(实例地址 + 令牌),内容存在你自己的设备与服务器上,没有云厂商替你“保管”数据,自然也就没有数据被拿去训练模型的风险;零采集:全应用仅申请网络与网络状态两项基础权限,无广告、无第三方 SDK、不收集设备标识、不追踪用户行为;硬件级加密:登录令牌经 HUKS 硬件密钥库 + AES-256-GCM 加密存储——密钥由安全硬件生成并托管,就算有人拿到你的数据文件,也解不开令牌,更杜绝明文日志泄漏。

 本地优先,离线可用 

所有写操作先落本地、即时可见——断网、地铁、飞行模式,都不耽误你记录和浏览;未同步的改动自动进入离线队列,联网后按序补传、自动合并,全程无需手动干预;增量同步引擎只拉取上次同步以来的变化,2000+ 条笔记也不会重复全量拉取,省电省流量;每 24 小时自动全量对账一次,保证两端一致。

 纯正的笔记体验 

完整 Markdown 渲染:代码块、表格、任务清单(可勾选回写服务端)、引用、分级标题;标签体系:#标签 一键筛选;附件(图片/文件)上传与管理,资源页三分类聚合展示;Flomo 风格分层编辑工具条:标签/图片/粗体/斜体/列表/更多,键盘弹起自动让位,光标永远不被遮挡;评论互动、可见性(私密/保护/公开)、归档、置顶、分享链接,一应俱全。

 为鸿蒙而生 

原生 ArkTS 架构,轻盈流畅,安装包很小,适配手机/平板/二合一;系统分享接入:从任意应用一键分享到 Memos,收藏灵感就在弹指之间;桌面卡片:不用打开 App,灵感直接呈现在桌面卡片上;生物识别应用锁:基于系统 PIN/指纹/人脸认证,给隐私内容加一道自己的锁;手势丝滑:左滑轻滑露出操作、快甩直接归档/删除、飞出动效反馈,多选批量管理更高效;深浅主题跟随系统,多实例账号自由切换,租户数据完全隔离。

 发现与沉淀 

Explore 发现页:浏览公开流,看看别人在记录什么;活跃度热力图:近 52 周的记录节奏一目了然,见证你的思考轨迹。

整个软件用 vibe Coding 的方式开发,部分代码逻辑可能还不算完善,但功能和交互,已经称得上完整

03

PART

临门一脚,发现“船已经有人造好了”

THE SHIP IS ALREADY THERE

开发接近尾声,我准备把它上架到鸿蒙应用市场。

然后,就是开头那个场景。

我在应用市场搜索的时候,发现一款同款软件已经上架,整体效果很好。它的名字,叫 memos 灵感

那一刻的心情,很难用一句话说清。有惊讶,有失落,但更多的是——一种奇妙的释然。

就像你翻山越岭,终于爬上山顶,发现有人已经坐在那里看风景了。第一反应是不甘心,第二反应是:这风景,确实是好啊。

04

PART

不重复造轮子:开源,让路

DON'T REINVENT THE WHEEL

冷静下来之后,我做了个决定。

作为一名 IT 人士,我太熟悉一句话:不要重复造轮子。这句话我说过很多次,但第一次,它真切地落在我自己身上。

从来没有什么一蹴而就,一切都是时间的沉淀。人生没有白走的路,每一步都算数。

这一两月时间没有白费。它换来了我对原生鸿蒙一整套开发注意事项的实战认知——这也是我写下整个鸿蒙开发系列文章的原因。它换来了一个功能完整的客户端,和一份可以交给后来者的代码。

于是,我把源代码完全开源了,放在 GitHub 上:https://github.com/gujin03/memos-harmony/

THE EMAIL

写给「memos 灵感」开发者的信

开发者你好。我是微信公众号“刘顾问客厅”的作者,自己是华为公司的一名员工。由于使用的设备多数为华为产品,在升级到原生鸿蒙系统后,我希望开发备忘录这款软件的鸿蒙原生版本,我也是该程序的重度使用者。在开发过程中,我总结了多篇经验与教训的文章(发表在个人公众号中)。我原本计划将该软件上架至鸿蒙应用市场;但在开发接近尾声时,我发现你开发的同款软件已提前上架,且整体效果很好。本着“不重复造轮子”的原则,我决定将此前开发的源代码完全开源。如果你感兴趣,可以查看我开源的仓库(https://github.com/gujin03/memos-harmony/)。

与你当前开发的版本相比,我的版本中包含一些交互设计可供参考,例如在备忘录界面左滑、右滑可快速存档或删除。整个软件采用 vibe Coding 方式开发,部分代码逻辑可能尚不完善。下面我录制了几个关于交互的动图,如果你感兴趣,可以看一下。我后续大概率将不再独立演进该软件。memos 是一款非常好的开源应用,希望经过我们的努力,共同提升其客户端体验。感谢!

几天后,收到了他的回复。很短,但很暖:

“左滑右滑操作以及批量操作确实是一个挺常见的使用习惯,我之后也会添加这个功能。有您这样的支持者,会让我继续坚持下去。”

那一刻我觉得,这件事做得值。轮子没有白造——它成了别人前进路上的一块石头。

05

PART

所以,想用 memos 的你,直接去应用市场搜它

JUST SEARCH IT

如果你也想在原生鸿蒙上用上 memos,我的建议很直接:

去华为应用市场,搜索「memos 灵感」,下载它。 那位开发者做得很用心,整体效果很好,而且他还在持续迭代——比如,那个让读者拍案叫绝的左滑右滑交互,也即将被他采纳。这就够了。

至于我的这份代码,就安静地留在 GitHub 上,https://github.com/gujin03/memos-harmony/,供后来者参考。里面的 HUKS 硬件级加密方案、增量同步引擎、离线队列设计,说不定能成为某个人灵感的起点。

///

END

写在最后

FINAL THOUGHTS

回头看看,这个系列写了备忘录软件开发中的一桩桩注意事项:标签保存的坑、服务端同步与 RDB 事务的纠缠、右滑手势交互的打磨、UI 自动化测试基建……每一篇,都是一段真实的踩坑记录。我把它写成文章,是因为我知道:在原生鸿蒙这个年轻的生态里,每一个“坑”被别人提前看到,都是后来者的福利。

做软件如此,写文章如此,在原生鸿蒙这条路上前行,亦如此。山不转水转,也许未来某一天,我们会在另一个码头相遇。如果你也想动手做点自己的东西,别怕重复,别怕白费。先出发,先上路,先把自己的船造出来。

我不去想是否能够成功,既然选择了远方,便只顾风雨兼程。

既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。

点赞
在看
转发

THANKS FOR READING

我是 刘顾问,关注我,我们一同进步。