# 【学习工作】NotebookHM - 国产鸿蒙笔记应用
> 标签:学习工作
—
## 1. Demo 简介
**是什么**:NotebookHM 是一款复刻 Obsidian 核心体验的****国产本地优先笔记应用****,Web 版 Demo 可在浏览器直接体验,后续将推出鸿蒙原生版。
**面向谁**:知识工作者、学生、研究者——有大量笔记需求、重视数据自主权、受困于 Obsidian 云服务国内访问不便的用户。
**核心功能**:
1. **纯文本 Markdown + 双链引用**
- 与 Obsidian 格式完全兼容,可直接导入已有笔记库
- `[[笔记名]]` 语法创建双链,实时自动补全
- 反向链接面板,查看谁引用了当前笔记
2. **本地优先存储**
- 所有数据存在本地 IndexedDB,不强制联网
- 支持导入/导出标准 Markdown 文件夹
3. **模拟云同步**
- 演示多端同步流程:同步状态标记(已同步/待同步/冲突)
- 冲突解决 UI:保留本地 / 采用云端
- "模拟另一设备修改"按钮可演示冲突场景
【配图:应用界面截图 - 三栏布局展示编辑+预览+反链】
—
## 2. Demo 创作思路
### 灵感来源
作为 Obsidian 重度用户,我长期受困于两个痛点:
1. **同步贵且国内不便**:Obsidian 官方 Sync 服务 $96/年,且国内访问速度不稳定,经常超时。iCloud 同步在国内也时好时坏。
2. **鸿蒙生态缺位**:随着华为鸿蒙设备量快速增长,我发现鸿蒙生态里****没有一个国产的生产力笔记应用****能对标 Obsidian。市面上的笔记应用要么是云端笔记(数据不在本地),要么是小众工具(不支持双链)。
### 想解决的问题
- **数据自主权**:用户完全拥有自己的笔记数据,纯文本存储,不被任何云服务锁定
- **国内同步体验**:基于华为云 OBS,国内节点速度快、信任度高
- **鸿蒙原生体验**:利用鸿蒙的分布式能力实现多设备协同(后续规划)
- **Obsidian 平滑迁移**:格式完全兼容,现有 Obsidian 用户可零成本迁移
### 为什么做这个方向
我的判断和取舍:
1. **市场机会明确**:鸿蒙生态补位 + Obsidian 国内痛点,两个需求叠加
2. **技术可行**:华为云 OBS 已有鸿蒙原生 SDK(公测),ArkTS 开发效率高
3. **差异化清晰**:不是简单复刻 Obsidian,而是"国产 + 鸿蒙原生 + 华为云"三位一体
**关键取舍**:参赛 Demo 先做 Web 版(浏览器可体验),鸿蒙原生版作为赛事后的产品演进。核心逻辑(Markdown 解析、双链解析)设计为共享层,后续可直接移植到 ArkTS。
—
## 3. Demo 体验地址
app-demo.zip (11.6 KB)
> 解压后打开 `app-demo.html` 即可在浏览器中体验全部功能,无需安装、无需联网。
—
## 4. TRAE 实践过程
### 开发流程概览
整个 Demo 使用 TRAE IDE 从零开发,全程借助 AI 辅助:
1. **需求澄清**:通过 brainstorming 流程,与 AI 协作明确了 10 个关键决策(项目定位、技术栈、双轨策略等)
2. **技术调研**:AI 并行调研了华为云 OBS 鸿蒙 SDK、鸿蒙文件系统能力、Markdown 生态三个方向
3. **设计规格**:产出完整的 10 节设计文档,涵盖架构、数据模型、组件交互、错误处理、测试策略
4. **实现编码**:按 writing-plans 产出的任务清单,分 14 个 Task 逐步实现
5. **测试验证**:核心逻辑(双链解析、frontmatter)单元测试覆盖
### 关键步骤截图
【截图 1:brainstorming 阶段 - AI 提出三方案对比并给出推荐】
1950985615850592:0ade9a4eb5bc4313d27327667ce4223d_6a48a14b92d76008d063e8d2.6a48a1b192d76008d063e91a.6a48a1b192d76008d063e918:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 14:01:21)
【截图 2:技术调研阶段 - AI 并行调研 OBS 鸿蒙 SDK 的结论】
1950985615850592:234267308c8a108c56288931b7f3a95b_6a48a14b92d76008d063e8d2.6a48a3b692d76008d063e949.6a48a3b692d76008d063e947:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 14:09:58)
【截图 3:架构设计阶段 - AI 绘制的三端协同架构图】
1950985615850592:74727571d5a55df14525fba106e36d86_6a48a14b92d76008d063e8d2.6a48a96a92d76008d063ea18.6a48a96a92d76008d063ea16:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 14:34:18)
【截图 4:编码实现阶段 - 三栏布局运行效果】
### 关键任务对话 Session ID
1. Session ID: 1950985615850592:0ade9a4eb5bc4313d27327667ce4223d_6a48a14b92d76008d063e8d2.6a48a1b192d76008d063e91a.6a48a1b192d76008d063e918:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 14:01:21)(brainstorming 需求澄清阶段)
2. Session ID:1950985615850592:234267308c8a108c56288931b7f3a95b_6a48a14b92d76008d063e8d2.6a48a3b692d76008d063e949.6a48a3b692d76008d063e947:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 14:09:58)(技术调研与方案选择阶段)
3. Session ID:1950985615850592:735db08f734fe8da170c394848883341_6a48a14b92d76008d063e8d2.6a48bab092d76008d063ed12.6a48baaf92d76008d063ed10:TRAE Work CN.0.1.29.no_sid.no_ppe.T(2026/7/4 15:48:00)(编码实现阶段)
—
## 5. 经验总结(额外)
### 本地优先架构设计心得
“本地优先"不是"不要云”,而是"本地是主,云是辅"。核心设计:
- 所有读写先发生在本地(IndexedDB),保证离线可用
- 云同步是第二层,失败不影响本地使用
- 双链索引在内存中构建,编辑时增量更新,避免每次全库扫描
### 双轨策略思考
"先 Web 后鸿蒙"的关键在于****共享层****的划分:
- `shared/` 层(类型、Markdown 解析、双链解析)不依赖任何 UI 框架
- ArkTS 是 TypeScript 超集,纯逻辑代码可移植
- 真实增量只在 UI 层和系统能力层
这样鸿蒙版赛事后启动时,不用重写核心逻辑,只重写 UI 组件和存储适配层。
### 国产化的意义
做"国产"笔记应用,不是简单的民族情绪,而是:
- 数据主权:笔记是最私密的数据之一,国产服务受国内法律保护
- 同步体验:华为云国内节点延迟 < 50ms,远优于海外服务
- 生态补位:鸿蒙用户需要一个原生适配的生产力工具




