zhdmm35/obsidian-mobile-companion
好的,这是基于 `zhdmm35/obsidian-mobile-companion` 项目 README 生成的中文学习卡。
一、一句话定位
一款通过直连GitHub REST API实现无服务器后端的Android端Obsidian仓库伴侣应用,让手机可安全浏览、编辑与离线阅读Markdown笔记。
二、核心技术/架构亮点
1. 零后端架构:应用直连GitHub REST API,无需自建服务端,完全依赖用户仓库存储笔记,极大降低运维成本。
2. 安全凭据管理:GitHub令牌通过Android Keystore进行AES-GCM加密存储,且禁止进入数据库或日志,安全性优于多数手动输入密钥的应用。
3. 优雅的冲突处理:编辑时若远端已变更,不静默覆盖,而是并排展示两个版本供用户手动合并,避免数据丢失。
4. 桌面双向同步工具:`tools/vaultsync` 利用git原生命令实现了30秒防抖自动提交与5分钟定时rebase拉取,冲突时安全中止,保证PC与手机端状态一致。
5. 离线优先与自动刷新:笔记内容支持本地缓存,可离线下阅读;同时具备新鲜度窗口、前台触发及去重机制,保证在弱网环境下体验流畅。
三、适用场景与目标用户
- 场景:使用GitHub作为个人知识库的存储后端,需要在Android手机上随时随地阅读和编辑Markdown笔记,并保持PC端同步的用户。
- 目标用户:
- 习惯使用Obsidian但厌烦官方同步方案或需要自建服务器的开发者与高阶用户。
- 对数据安全有要求,希望所有数据掌握在自己(GitHub仓库)手中的用户。
- 需要在电脑和手机之间无缝切换编辑笔记的Markdown重度用户。
四、可动手动作
1. Clone项目并尝试构建:`git clone` 项目后,使用Android Studio导入,运行 `./gradlew.bat assembleDebug` 构建debug APK并安装到手机上。
2. 接入自己的GitHub仓库:在GitHub设置中创建一个针对特定仓库的`fine-grained`个人访问令牌(权限:contents read/write),然后在应用中填入令牌和仓库地址即可使用。
3. 借鉴同步方案:可复制 `tools/vaultsync` 目录到自己的本地笔记目录,按示例修改 `vaultsync.config.json` 配置,直接运行 `npm start` 测试自动同步功能。其“git rebase”处理冲突的思路可借鉴到其他需要双向同步的场景。
五、学习优先级 & 理由
- P0:本周动手。理由:该项目的“零后端”架构设计与“双向同步”方案,直接解决了个人笔记数据不落云、手机端不愁管理的问题,且构建上手快,本周即可获得一个可用的移动端笔记工具。⌂