美文网首页
Knotes 背后的故事

Knotes 背后的故事

作者: Dukewan | 来源:发表于2016-12-20 17:29 被阅读0次

贺乙钊 Yizhao He
2016/12/20

关于 Knotes

Knotes 是 Mac 平台高效、优雅的 Kindle 标注管理器,将 Kindle 用户从繁重的手动复制粘贴的标注管理方式中解救出来。

Knotes
特性:
  1. 无需配置,连接即可同步
  2. 按作者、书名管理标注
  3. 快速对书名、作者、标注进行全文搜索,
  4. 支持无干扰阅读模式
  5. 自动下载匹配图书封面
  6. 干净、优雅的用户界面
  7. 支持中文和英文
下载和定价

官网 http://knotesapp.com/cn 即可下载,可试用7天,售价 ¥35 元。

想法诞生

本人是一个 Kindle 重度用户。自从入手了 Paperwhite 之后就爱不释手,吃早饭的时候会用 Kindle 看一些创业或者自我管理相关的书籍,睡前也会看小说助眠。

看书过程中会在 Kindle 中把很有感触的文字标注出来,或者做一些笔记。但我发现在 Kindle 上进行标注管理很费劲,原因就是 Kindle 反应速度比较慢,屏幕也小,用手指进行点选操作不是很方便。而且我的 Kindle 是国内亚马逊账号,所以不支持亚马逊的网页版标注管理。由此便产生了做一个桌面版软件进行管理的想法。

开发历程

设计

最初的 Sketch Mockup

技术栈选择

自从决定专心钻研前端技术,JavaScript 就成了我的主要开发语言。

而使用 JavaScript 开发桌面应用,已经有了成熟的 ElectronNW.js 技术,原理都是将 Chrome 内核进行封装,并提供 API 访问系统资源和权限。虽然相当于是浏览器包装了 JavaScript 应用到原生系统,功能上和性能上相差其实也不是很大,Visual Studio Code, Slack, Atom 都是非常优秀的 Electron 应用。

Knotes 采用了 Electron 作为开发的基础,前端库选择了 Vue.js 开发单页面应用,UI 库选择了 Semantic-UI

遇到的难题

第一次开发 Mac 应用难度还是很大的,因为这次的目标平台从浏览器变成了操作系统,遇到的问题会多很多倍,也奇怪很多倍。

开发过程中的各种报错求助于 StackOverflow 和 Github repo 的 issue 不需要多说。

下面主要列举一些使用 Electron 开发 Mac 平台应用相关的问题。

目前 Knotes 是在 Mac App Store (简称 MAS) 之外发行的 Electron 应用。

在 MAS 之外发行应用,好处是不用担心 Sanbox 权限问题,限制小很多,但随之而来是要自己解决销售、License管理和版本更新问题。

销售

销售方面,采用了 FastSpring 接入在线商店,费率为 8.9%。其实这个费率还是挺高的,每个订单 10% 的手续费,跟国内的支付宝的 0.5% 相比简直贵出天际,但是 Knotes 的目标用户不仅仅是国内用户,所以使用了其他大的 Mac 软件厂商常用的 FastSpring,据我所知,SketchPdfExpertCleanMyMac 等都是采用的 [FastSpring]。

License 管理

License 管理,这也是一个难题。之前做过 Chrome 的付费应用,但是是基于账号系统的,所以付费记录跟着账号走,完全没有 License 的概念。而桌面应用大部分都是无账号系统的,只能通过 License 来验证是否购买过。如果是原生的 MacOS 应用,已经有了很成熟的 License 解决方案 DevMate,但 Electron 无法集成 DevMate 提供的 SDK, 难度便陡增起来。最后我咨询了 Markdown 编辑器 WordMark 的作者 Hao Liu, 也结合自己的经验,自己写了 License 验证 API。所以目前最终的解决方案是:

  1. 使用 DevMate批量生成 License
  2. FastSpring 生成订单的时候从预置的 License 中取出并邮件发送给用户
  3. 用户在 Knotes 中激活 License 时进行 API 验证
版本更新

版本更新,Electron 本身采用了 Squirrel.Mac 进行自动更新的支持,而我需要做的是提供一个自动更新的后台以便 Knotes 进行更新查询和更新下载。最终采用了GitBook 开源的 Nuts,以 GitHub 的 release 作为版本管理的基础,Nuts 负责拉取最新版本号和最新的安装 Zip 包并提供 API 查询。

推广

刚开发完的时候,去 v2ex 社区分享创造版发了帖: Knotes - Mac 版 Kindle 标注管理软件 赠送激活码 , 得到了 V 友们的肯定。

后来在 Product Hunt 上发帖宣布上线 Knotes - Product Hunt,也得到了 V 友和朋友圈好友的帮忙,最终成为当日 Tech 主题下排名第二的项目。

Knotes @ Product Hunt

总结

Knotes 是我个人的第二款产品,也是第一款 Mac 应用。从萌生想法到上线,陆陆续续开发了2个月,开发过程中充满了喜悦和荆棘,深感做个人开发者不易,但坚持下来却坚定了做自己产品的决心,虽前路漫漫而修远,吾将上下而求索。

关于

贺乙钊

Knotes 作者,贺乙钊 (Yizhao He), 现 USC CS Master,本科是北京邮电大学计算机科学与技术专业。

个人主页: http://1mhz.me

相关文章

  • Knotes 背后的故事

    贺乙钊 Yizhao He2016/12/20 关于 Knotes Knotes 是 Mac 平台高效、优雅的 K...

  • 上架Appstore背后的故事

    上架Appstore背后的故事 上架Appstore背后的故事

  • 目录

    背后的故事—我们一直在1 背后的故事—我们一直在2 背后的故事—我们一直在3 背后的故事—“神秘”救援队

  • 《故事背后的故事》

    听蔡朝阳老师解读《小王子》的课,在讲作者埃克苏佩里的生平时,提到了C·S·路易斯,也有一颗童心,才写下了魔幻童话...

  • 故事背后的故事

    今天,全课程研究院专家、南京赫贤学校中方校长王云到我校为全体语文教师举行了整本书阅读专题报告会,并展示了一...

  • 故事背后的故事

    《人淡如菊》这个简单的故事,从写作初稿到修改,前前后后花了不少时间。它应该是自我在简书写作开始,花时间最长的一篇。...

  • 故事背后的故事

    这世界是一面镜子,有好人就会有坏人、有善良就会有邪恶,所以命运也只不过是来回穿梭于镜的两面罢了。每个人都是自己命运...

  • 故事背后的故事

    得到演讲全文是在1号早上看的,印象最深刻的分享是计划通过40位历史人物串联起中华历史的故事。因为跟学的一位老师在2...

  • 故事背后的故事

    九月星空推文团推荐阅读,原创首发,文责自负! 这是一个真实的故事,曾经写进政治教科书,勉励莘莘学子们知识就...

  • 故事背后的故事

    不抱热切的期望就不会揪心的失望,大街小巷都知道不要把所有的鸡蛋同放一个筐里,再完美的计划也时常遭遇不测。 生活并不...

网友评论

      本文标题:Knotes 背后的故事

      本文链接:https://www.haomeiwen.com/subject/nbhfvttx.html