网易首页 > 网易号 > 正文 申请入驻

这个软件我开发了11年,终于赚钱了!

0
分享至

  2015年,我是一个普通的全栈Web开发。

  我有一台Mac,玩了一段时间以后,我就被它充满活力的应用生态系统所吸引了。

  有一天,我看到了一个叫做IA Writer的Markdown编辑器,又简单又优雅。

  我也决定自己做一个。

  怀着满腔热情,我开始学习如何制作Mac原生文本编辑器。

  XCode,AppKit,Objective-C,所有这一切对我来说都是全新的。

  我打算把我的文本编辑器叫做Paper,它就像一张纸,非常简洁。

   重要的决定

  我的第一个决定就是:这个应用一定要是原生的

  我是Web开发,完全可以复用Electron这样的框架,但是我不想用它。

  我宁愿学习全新的技能,为用户提供最好的体验。

  这个体验就是:软件很小,下载速度超快,使用起来是原生的UI。

  这样才能与其他非常精美的编辑器竞争。

  我不想缩短开发时间,因为我拥有世界上所有的时间。

  第二,我选择了Objective-C

  2015年,Swift刚刚出现,我做了一个实验,用Objective-C和Swift分别在XCode中写了一个空的项目,然后检查各自生成的.app包。

  我惊讶地发现,Swift中嵌入了完整的运行时,.app包是5M,而Objective-C只有几十K。

  (如果你现在进行这个实验,差异不会那么大)

  我想要最好的,宁愿付出更难学习和语言过时的代价,以便得到更精简的软件包。

  第三,我不想依赖第三方

  从自己不熟悉的生态系统中,选择依赖项,这实在是不容易。

  恐怕大家都有这样痛苦的经验:在编写一行代码之前,添加一大堆不知道的第三方包和库......

  我要构建一切内容,这样我可以按需定制,获得一点竞争优势。

  比如Markdown的解析引擎,因为Paper不像那些传统的编辑器,并不支持全部的Markdown语言,所以在解析引擎中我只需要写我需要的代码,并且我可以做大量优化。

  Paper 仅使用 AppKit 和 UIKit 中的本机 UI 元素,因为它们的维护开销最低:由Apple自动更新,向后兼容,保证在每个设备上工作。

   我的愿景

  非常简单,超越IA Writer,更加精简,更加优雅,让用户专注于写作这件事。

  为了实现目标,我尽最大可能减少干扰。

  应用程序窗口内没有一个按钮。

  没有标准的“首选项”窗口,将所有内容分散到菜单项和菜单小部件中。

  将滚动条缩小为2个像素的线。

  上下滚动时可以隐藏标题栏,使得编辑器周围的空白可以拖动

  不知道是否有人注意到了我这些努力,很可能是有的,因为有人写了一个非常简洁的评论,我至今依然将其作为宣传语:

这是一个超级干净的写作空间,有大量可配置的东西,当你不需要时,它们可以隐藏在实现之外。

  根据我的观察,奉行极简主义的写作软件通常会走向两条路:

  (1)变得流行,为了满足大量用户的新需求,偏离极简主义初心,变得复杂起来。

  (2)继续保持极简和小众,最终被创造者所抛弃。

  Paper不会走(1),但是可能在(2)的路上。

  我的计划是:让Paper永远保持它发布时的样子,拒绝增加多余的视觉混乱,正如用户所说:

请不要让 Paper 变得更复杂!市面上有很多“全功能”编辑器,但它们不适合专注写作。

  同时,通过缓慢的、可预测的更新节奏,我会向应用程序的边缘地带添加功能,同时保持默认路径超级干净。

  

  与浏览器中可预测的JavaScript运行时相比,闭源原生UI是一个脆弱的地方。

  如果你不努力的投入精力去重构应用,fix bug,很快,你的软件就会因为崩溃而被大家弃用。

   架构设计

  我发现将Paper的代码看做两个作用域非常方便

  1.应用程序作用域

  包括菜单,状态栏,图标,暗黑模式,全局配置,单实例视图

  2.文档作用域

  视图和逻辑的集合,存在于表示单个文档的视图控制器中。

  一个新的文档作用域在文档打开的那一刻产生,在文档关闭的那一刻死亡。

  与单一应用程序作用域不同,多个文档作用域可以同时存在

  对每个作用域,我都会定义一个storyboard,完成以下功能:

  描述作用域内使用的各种视图和小部件

  充当依赖注入容器,将作用域内所有的模块粘合在一起。

   付费功能

  从2015到2017年,订阅制在App Store中还不普遍。大家还都是付费下载,但是我觉得如果不使用的话,大家不会为一个不知名的App付费。

  我其实并不想设置什么“付费墙”或者试用期啥的,我想给用户提供更好的体验,我的办法就是给专业版(Pro)的某些视觉效果收费,对于基本功能如文件同步、PDF导出等保证免费。

  然后我让大家无限期的试用,感受外观和效果,如果大家觉得不错的话,就可以购买Pro版。

  当然,必须得有办法防止无限期地使用高级功能而不掏钱,最早的时候,我设置了一个60秒的定时器:如果有一个Pro版的功能处于激活状态,就提醒人们购买。

  说实话,60秒提醒一次挺烦人的,后来,我想了一招,把这些提醒和文字联系起来,一旦你用Paper开始写作,每输入几百个字符提示一次,这样大家就可以尽可能不受干扰的情况下尝试所有功能。

  

  事实证明,从用户反馈看,这种和文字结合的付费提醒方式很不错:

“......Paper可以让你随意摆弄和测试专业功能,而不是锁在付费墙后面(这也是我不喜欢很多应用的原因)....你不必相信我说的,自己跳进去看看,Paper让你试用每一个特性...”

   粗糙的部分

  文本编辑器有太多的功能了,复制粘贴、拖放、撤销、插入符号交互、从右到左的语言、非字母语言、听写、语音文本、扫描文本、文本中的非文本对象、点击并按住链接预览、文本搜索替换、拼写检查、自动更正、自动完成、人工智能建议......

  你还得被新版的操作系统摆布,它可能增加了新的方式来插入、更新文本,和文本交互。

  在iOS上,弄清楚“文本编辑器矩形”背后的数学原理尤其难,因为有各种因素,例如灵动岛,主页栏、动态显示的软件键盘,这些都会造成阻碍。

  

  输入语言和字体也是一个令人头疼的问题。

  字母语言相对容易处理,因为大多数主要字体甚至支持古怪的字形,例如元音变音和西里尔字母。

  然而,非字母语言需要特定的字体来显示其字形。

  幸运的是,苹果系统为每种非字母输入语言至少预装了一种字体。

  唯一的问题是:没有 API 将输入语言映射到支持的字体 - 所以我不得不用大量的switch语句暴力破解它。

  还有就是批量更新,对简单的情况很容易,但是对于那些边边角角的情况,处理起来太痛苦了,比如加粗一段文本就耗费了很多步骤

  

   用户反馈

  Paper最早用的是一个叫做HockeyApp的平台,Mac版自带聊天功能,这可比电子邮件反馈好多了,用户可以直接启用聊天,进行反馈。

  微软收购了 HockeyApp后, 将其变成了 AppCenter,聊天功能没有了。

  没办法,我只好自己做:

  

  后来我还发现了一些小“秘密”,我写了一些代码,能够从用户未发送消息中查找一些关键字,然后自动回复。

  

  自动回复回答了很多常见的问题,大大减少了我的“客服”工作量。

   软件发布

  我会收集聊天中的反馈,每月做一次新版本发布。

  我会使用单个递增的数字做版本号,这是个简单的事情,为啥要用2个以上的用点分隔的数字呢?

  这是我的release note 模板:

  

  我觉得release note 一定得简单,这样用户才能真正阅读。

  错误修复,微调,较小的功能通常不会提及,我不喜欢类似“我们已经修复了一些错误并进行了一些性能改进”这样的废话。

  不断地更新让用户觉得他们的订阅是值得的,也会告诉App Store算法,这个应用没有被放弃。

  最后,正是这种缓慢而稳定的节奏让我能在未来几年继续做这件事情。

   后记

  这篇文章翻译来自https://papereditor.app/dev,作者是Mihhail Lapushkin,一个爱沙尼亚的程序员。

  

  原文中有更多章节,我做了删减,翻译也不是直译,而是在保留原意的情况下,转换成了更轻松的风格。

  这篇文章让我最为感慨的是这么几点:

  1.跨界开发

  一个Web开发,毅然进入桌面领域,学习全新的知识,并且获得成功。

  所以,喜欢什么东西,就动手搞起来吧,别把现有的技术栈自己给圈住了。

  现在AIGC很厉害,完全可以利用起来。

  2. 目标明确,追求极致。

  他追求的就是最佳的用户体验,为了缩小软件大小,直接用最“原始”的Objective-C。

  为了完全掌控,竟然不依赖第三方类库,完全从头打造。

  在我的记忆中,可能只有SQLite的作者也是这么干了。

  3. 不但会编程,还得有艺术品位。

  这个Paper编辑器界面做得赏心悦目,就连这篇文章的网站也做得让人看起来非常舒心。

  可见Mihhail Lapushkin不但是个程序员,还是个优秀的用户体验设计师,很有艺术品位。

  这一点我很羡慕,我一直在弄后端,就是因为搞不好界面相关的东西。

  程序员众多,把不同领域的知识结合起来,才能脱颖而出啊。

  4.长时间打磨,真有时间

  2015年开始做,2017年作出第一个版本,在Mac上发布,2019年发布iOS版本。

  然后就是持续的打磨,到今年已经11年了。

  除了真正喜欢之外,很难找到别的原因了。

  Mihhail Lapushkin说“我拥有世界上所有的时间”,嗯,这些国外程序员确实太幸福了。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
秒杀孙宇晨小作文:深圳富豪“仅退款”,还把小三送进去14年

秒杀孙宇晨小作文:深圳富豪“仅退款”,还把小三送进去14年

吃瓜体
2026-09-06 11:33:54
CHINA GT发生重大撞车起火事故,“救援人员因害怕,放下灭火器后逃离”,对手弃赛冲入火海救人

CHINA GT发生重大撞车起火事故,“救援人员因害怕,放下灭火器后逃离”,对手弃赛冲入火海救人

澎湃新闻
2026-09-06 16:54:03
周三、四陪上司睡,周五上海睡丈夫,朱某真面目被老公揭开:下流

周三、四陪上司睡,周五上海睡丈夫,朱某真面目被老公揭开:下流

江山挥笔
2026-09-06 15:51:56
拒绝绝杀!卡里乌斯87分钟神勇托出凯恩远射,凯恩无奈抱头

拒绝绝杀!卡里乌斯87分钟神勇托出凯恩远射,凯恩无奈抱头

懂球帝
2026-09-06 10:43:40
44万人欠信用卡,银行连官司都懒得打了

44万人欠信用卡,银行连官司都懒得打了

知肇分子
2026-09-04 23:43:57
“林肯”号航母驶离泰国,官兵5天消费1亿泰铢,除了2名水兵在芭堤雅酒后斗殴外,没发生逮捕案件

“林肯”号航母驶离泰国,官兵5天消费1亿泰铢,除了2名水兵在芭堤雅酒后斗殴外,没发生逮捕案件

鲁中晨报
2026-09-06 20:39:17
消息曝光!多款国产出口路由器藏有后门,设备支持全程远程操控

消息曝光!多款国产出口路由器藏有后门,设备支持全程远程操控

小柱解说游戏
2026-09-06 09:38:45
我国成立重要机构,走出统一关键一步,没想到,解放军还有大动作

我国成立重要机构,走出统一关键一步,没想到,解放军还有大动作

共工之锚
2026-09-06 00:27:18
收钱真办事!林肯号离开泰国,被港口工人除锈后体面了不少

收钱真办事!林肯号离开泰国,被港口工人除锈后体面了不少

青辉
2026-09-06 16:43:05
你无意间撞见过啥大秘密?网友:我也撞见过我闺蜜妈妈的那啥

你无意间撞见过啥大秘密?网友:我也撞见过我闺蜜妈妈的那啥

解读热点事件
2026-09-05 00:15:12
江西一女生赴港看演唱会被取消全家低保?律师:若属实于法有据,但行政比例原则有讨论空间

江西一女生赴港看演唱会被取消全家低保?律师:若属实于法有据,但行政比例原则有讨论空间

封面新闻
2026-09-06 18:22:09
阿里P8:人一旦失业,就会“扣扣搜搜”。家庭收入从去年140万降到今年50多万

阿里P8:人一旦失业,就会“扣扣搜搜”。家庭收入从去年140万降到今年50多万

蚂蚁大喇叭
2026-09-06 17:09:52
演员吴彦祖发生撞车事故,现场画面公布

演员吴彦祖发生撞车事故,现场画面公布

新民周刊
2026-09-06 13:08:11
广州图书馆人满为患!大批失业者假装上班,专家痛批:脱不下孔乙己的长衫

广州图书馆人满为患!大批失业者假装上班,专家痛批:脱不下孔乙己的长衫

火山詩话
2026-09-06 15:08:53
贵州3名未成年女孩相继离家,最小仅12岁!手机最后定位在江苏,最长已有一个月未归,家属心急如焚

贵州3名未成年女孩相继离家,最小仅12岁!手机最后定位在江苏,最长已有一个月未归,家属心急如焚

扬子晚报
2026-09-06 21:31:33
承诺开玩笑:去年车企集体承诺"60天内付款",一个都没做到!小鹏汽车最猛,一口气拉长57天!

承诺开玩笑:去年车企集体承诺"60天内付款",一个都没做到!小鹏汽车最猛,一口气拉长57天!

新浪财经
2026-09-06 10:42:08
加拿大白人发文爆料:两周内在深圳第10次被女孩拦下合影,言语满是嘲讽

加拿大白人发文爆料:两周内在深圳第10次被女孩拦下合影,言语满是嘲讽

小徐讲八卦
2026-09-06 11:00:36
印度一大哥脚趾肿痛,医生说要截肢。女婿说先别切,第二天带他来中国,结果医生只说了三个字,全场愣住

印度一大哥脚趾肿痛,医生说要截肢。女婿说先别切,第二天带他来中国,结果医生只说了三个字,全场愣住

LULU生活家
2026-09-06 18:05:04
落后127分!张雪机车基本无缘总冠军 与杜卡迪争亚 雅马哈优势大

落后127分!张雪机车基本无缘总冠军 与杜卡迪争亚 雅马哈优势大

念洲
2026-09-06 20:01:44
死在加州路边的阿里总监:42岁,年薪百万,却买不到一张回程机票

死在加州路边的阿里总监:42岁,年薪百万,却买不到一张回程机票

林子说事
2026-09-06 13:39:11
2026-09-07 00:43:00
码农翻身 incentive-icons
码农翻身
有趣且硬核的技术文章
306文章数 670关注度
往期回顾 全部

科技要闻

DeepSeek被曝将采购16万颗华为昇腾950DT

头条要闻

中尼两国遇难失联人数为何相差如此大 专家解读

头条要闻

中尼两国遇难失联人数为何相差如此大 专家解读

体育要闻

3.9秒绝平!杨舒予18+5成女篮救世主

娱乐要闻

杨紫获白玉兰影后!爸爸:累了就回家

财经要闻

亏损高达200亿,昔日彩电霸主走下巅峰!

汽车要闻

带升降立标MPV 岚图梦想家9预售价42.99万起

态度原创

房产
手机
家居
本地
公开课

房产要闻

突发重磅!海口出台楼市新政!

手机要闻

华为最贵手机发布前瞻:三折叠防窥屏+阔屏游戏神器,钱包又要扛不住了

家居要闻

2026建博会(广州) 公装联探展交流活动

本地新闻

扒完小作文,富豪们私藏的度假胜地有多绝

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版