说说我出道后的处女作:剪贴板神器 iPaste

2017-07-25 08:06:18 +08:00
 quietjosen

2015 年底,我离开了这辈子最后一家公司,成为一名自由职业者。而 iPaste,是我独立开发的第一款 macOS 产品。

1.7 年过去了,在发布新版 iPaste 时,说说这款让我不再青涩的作品。

----- 长文开始警戒线;不喜请绕行 -----

0) 起初,「贴贴板」并不算产品

如果现在做个新产品,事先一定会有充分的调研,比如用户需求是否真实存在、市场容量、竞品分析、技术可行性分析等等,然后才会立项。

之所以说不算产品,是因为当初做「贴贴板」时,完全跳过了这些环节,直接开始码;更像是个练手的项目。怎么回事?主要是当时刚刚出来自己单干,已经至少 3 年没写代码了,做什么领域的产品,都行,也都不行。在脑子一热决定先做 macOS 时,脑子里第一个冒出来的就是贴贴板这个点子,因为自己平时太需要剪贴板增加工具这类产品了。

咦,你可能好奇,说好的是 iPaste,怎么变出个贴贴板?其实,这个产品就是以「贴贴板」这个名字问世的,并保持了最开始的大半年时间。2016 年 9 月底才更名为 iPaste;这是后话,后面再提。

这里衍伸出一个话题:做产品,是做自己需要的产品,还是做大众需要的产品?当然,如果这两者重合,最好。如果不,建议起步时选择自己需要的产品。最直接的好处是,你自己就知道产品应该做成什么样子,跳过了用户调研的环节,也不至于跑偏。

不过,这个方式有个很大的局限:通常,自己的需求有限,并且会是个小点子,不利于产品做大。而且,产品做大后,就不再是当初自己想要的东西了,又变成了做大众需求的产品。所以,根本上是 在做自己需求的产品的时候,摸过出做产品的路子,进而推演到大众需求。

这里引用在 IndieHacker 上看到的一段话。

If you build a product for yourself …, there's probably a million others like you out there. Maybe not a billion, but unless you're a freak, there's a million.

精准的翻译是:通常你需要的,别人也需要的;这些「别人」,没有千万、也有百万,除非你是朵奇葩。

1) iPaste 夺走我的第 1 次,一次又一次

就是这么一个不算产品的产品,却 让我经历了无数的从 0 到 1

1.0) Swift 与 macOS 开发

这部分在 Mac 开发的神秘面纱:后娘养的嫡长子 里有介绍,这里仅简单的提及。

对于 iPaste 而言,核心的部分是系统剪贴板。也即,能够记录用户曾经复制的内容,并且能 100% 准确地还原。难就难在这 100%,因为用户可能会在任意程序中、复制任意格式的数据,如纯文本、格式化文本、图片、文件等等。

其实,我试了当时的一些竞品,包含非常知名的,并没有做到这一点。比如,在复制并粘贴到 Numbers 时,会有一个单元格的错位。产品深处这样的问题,你在他们高大上的宣传中自然是看不到的。而 贴贴板 就做到了这一点,所以当时我还打出了「支持任意格式,不服来战」的口号。核心的,就是将 NSPasteboardItem 中的数据,存储为 Data;在粘贴时,再将其写回系统剪贴板。

不过,后来发现,某些格式还是有问题的。比如,在 Sketch 中复制 svg 格式的图片时,系统剪贴板中会产生 com.facebook.semaphore 这种类型。而对于这种类型 NSPasteboardItem.data(forType type: String) 这个函数会卡死 10 几秒。我试了几款知名的竞品,也有两样的问题,看来确实是 macOS 系统有 Bug。不过,这种情况还是相当少见,在我自己用 iPaste 的一年多时间里,仅遇到过这种情况(别试 iPaste 了,因为已经改掉了;但是可以试试你手上的工具😂)

再有,就是 macOS 沙盒的限制。具体到贴贴板,就是 如何将系统剪贴板中的内容粘贴到当前应用。要做到这一点,有多种方式,速度最快的,是发送 Command + V 键盘指令,模拟用户按下粘贴快捷键。不过,在沙盒模式下,这一方式直接不干活。

能在沙盒模式下干活的,就使用 Apple Script 来发送 Command + V。可是,在上架 Mac App Store 时被拒。反观所有已经上架 Mac App Store 的同类应用,都是让用户再从其官方下载一个所谓的插件、助手,基本都是安装 Apple Script 来实现自动粘贴。最后,我也从了,用了类似的方式。

这里再 吐槽一下 macOS 沙盒模式,已经裹足不前好几年了。对于自动粘贴这样的需求,不支持的理由无外乎是安全。可是,这样的不作为,直接导致用户下载安装一个自己不可能验证安全的助手。在我看来,只是将安全的皮球踢给了用户,撇清了自己的责任而已。

1.1) 独立完成一个产品

一个产品完整的生命周期,所涉及的点是非常多的:产品定义、市场研究、竞品分析、设计、开发、测试、上架、运营、推广、客服等等。要独自做好这些事,确实是很大的挑战。

当然,由于精力和能力有限,我也不可能做好所有的方面,目前主要的精力是开发和推广。对于做不好的地方,可以:

不同的事,处理的方式不同。

其实,我还是挺愿意花时间折腾自己目前不擅长的事。不过,毕竟时间有限,还是要 把时间用在自己的长处,把短处外包给更专业的人完成

另外,自己一个人做也是有好处的。比如,不需要与人商量,就减少了很多沟通成本。尤其是各方意见不一致时,要达到最终结论,通常需要消耗大量的时间,甚至是返工并带来额外开发成本。而一个人,则没有这样的问题。

在实际做事的过程中,也养成了自己的习惯,比如:

建立这些习惯的过程是痛苦的,因为要摸索所有的可能性,摒弃不适合的,最终形成适合自己的方式。而一旦建立,会有很大的收益。在下次做类似的事情时,好的习惯会大大提高效率,避免走大的弯路。

1.2) 第一次出门吆喝

自己辛苦做出来的产品,自然是希望更多人用;能赚更多钱,当然更好。可是,酒香也怕巷子深,尤其现在大家的注意力被各种事情分散着,要在这样的前提下,让更多需要的朋友知道自己的产品,是个很大的挑战。

要增加产品的爆光,最直接的就是在媒体上报道。回过头来看,从时间和效果上看,当时这几个媒体还是不错的:

而这些,全部是国内的媒体。如何在海外推广?很是头大。其中,我尝试了 平生第 1 次付费推广,是在 Two Dollar Tuesday,当时,其官方的规则是:

You discount your app to $1.99 in the App Store for 48 hour promo (Tuesday & Wednesday).

We will promote your deal via e-mail, our website, Facebook & Twitter.

We then do a revenue split after Apple's cut. On a $1.99 app, you get $1.40. So we get $0.70 to us per sale on Tuesday only. Wednesday you keep 100% of proceeds.

We have you pay us for the first 100 sales ahead of time ($70).

Finally, we have a $1,000 MAX on the amount due to us. Meaning, no matter how many copies we sell on Tuesday, you can never owe us more than $1,000.

精准翻译过来,就是:

实际的效果,在这两天仅售出 92 份、$126,除去先前支付的 $70,还剩 $56,相当于每份 $56 / 92 = $0.6,白菜价。

于是,我之后再没试过付费推广…

需要注意的是,媒体的效果主要有 2 方面

不过,媒体资源毕竟是有限的,你总不可能天天被报道吧?在更长的时间范围内,都要靠用户的自发传播,和自己的影响力。

对于口碑传播,当然首先要靠产品的硬实力,毕竟首先产品要好,用户才愿意消耗自己品牌价值,去推荐你的产品。当然,这其中也存在一定程度的可操作性,比如在程序角度诱导用户分享,以及分享送 Pro 之类的活动。

对于自己的影响力,就需要长期建设了。比如,我最近强迫自己每周二早 8 点在自己的「**自在开发**」公众号中写篇技术长文(包括本篇),也在自己的博客、少数派、掘金、简书等全媒体发布。这些文章的受众,有可能就是我自己产品的用户。并且,有了文章的背书,当用户对我有更多了解和信任后,也就更愿意尝试我的产品。

2) 贴贴板到 iPaste 的蜕变

2.0) 那些年,我也曾青涩

对于名字,当初也是纠结了很久才定的「贴贴板」(英文 Daily Clipboard )现在来看,中文名还好,英文名就太差了些,且和中文名没有关联。当时,我已经开发了 iPic,想维持一个「 i 」系列,就直接改为「 iPaste 」了。

再来看看当年贴贴板的 Logo (左侧):

真有种不忍直视的感觉 😅

目前的 Logo (右侧),是自己设计的。基本是参考系统圆形 Logo,如 iBooks、App Store ;其中的 P,和 iPic Logo 中的 P 一样;背景的深绿色,是参考系统 Time Machine,想借其稳定的意味。

其实,改名、改 Logo 的影响还是非常大的。比如,之前所有在媒体沉淀的报道,全都无效了,需要从 0 开始积累影响力。所以,大家在给产品起名、设计 Logo 时,一定要慎重。定好了,就要坚持。

对于独立开发者朋友,我有个小建议:保留自己程序的历史版本。当然,我知道你肯定已经用了 Git ;我是说,保留可以直接运行的版本(你确定,20 年后,你还有能力将代码编译为程序 😂)就像老照片一样,多年以后,重新运行一下自己当年还懵懂时写下程序,看那交互、那颜色、那不经意的跳转,就像看老照片一样,会有别样的情愫

2.1) 付费下载 -> 内购

最开始,iPaste 的模式是付费以后才能下载使用。

采用这一方式的唯一原因:实现简单。或者说,代码上什么都不用做,无需区分免费版和付费后的功能限制,无需处理复杂的 In-App Purchase 集成。

不过,这一方式的缺点也很明确:限制潜在用户尝试 iPaste. 这部分可以在 Mac 开发的神秘面纱:后娘养的嫡长子 里有介绍详细的介绍。

后来,iPaste 将付费模式调整为免费 + 内购。从效果上看,确实明显增加了用户数量,用户付费也有所增加。所以,如果你打算开发个产品,个人建议采用免费 + 内购的方式。其中,可以试试我开源的 IAPHelper,可以很方便地集成 In-App Purchase. 另外,内购也可以试试订阅。虽说很多朋友对于订阅还很抗拒,不过,还是有用户能接受,不妨考虑一下。

换付费模式,其实是挺麻烦的事。比如,最开始已经付费购买的用户,总不能让其再购买一次、或者不能更新吧?要做到这一点,就要识别出之前上架 MAS 的版本,以及用户是否从 MAS 下载的 iPaste,对于条件都满足,则自动开通高级功能。如何识别?主要是从 MAS 更新 Receipt 并解析其中的内容。

3) iPaste 的现在与将来

3.0) 工具型产品的困境

我查了下,上个版本的是 iPaste,是在去掉 9 月 26 日发布的,几乎都快一年了。

为什么这么久都不出新版?

一方面,是我在忙 iPicKlib 等其他产品。另一方面,更重要的,是我 没想好该怎么改进

工具型产品很容易陷入这样的困境:一方面,会遇到用户增长迟缓的情况;另一方面,会有用户表达「加了这个功能,我就买」这样的意愿。于是,很容易抗不住压力,加了某个功能。且不说当初的用户是否真的购买,长此以往,产品的功能越来越多,很容易变得越来越复杂、越来越不好用。用户增长变得更缓慢,甚至流失,陷入 死循环

Word 就是个典型的例子,就像我们熟悉的那句话:99% 的人用了 Word 不到 1% 的功能。当然,Word 依然是现在的工业标准。但与此同时,以 Markdown 为代表的文本轻量型编辑工具,蚕食了大量原本属于 Word 的份额。

其实,很多工具型产品变坏、变难用,很大程度是因为营收的压力。因为工具型产品本身是极难赢利的,而不赢利又无法养活团队,不现实。于是,为了赢利,产品团队不得不加些社交、内容等元素,想办法增加用户粘性和互动,进而希望带来更多转化和商业可能性;但通常,事与愿违。

怎么破呢?简单:别指望用工具赚大钱。不要让团队过于膨胀,以减少成本。出于这一点,独立开发者、小团队,很适合做工具型产品,因为营收压力小,一人吃饱、全公司不饿,不至于因此让产品畸变。

3.1) iPaste 该如何突围

说回 iPaste,它的 核心功能就是一句话:记住用户曾经复制的内容,然后粘贴。对于核心功能,iPaste 已经实现的很好了,甚至可以钉住剪贴板历史,进而使用固定的快捷键粘贴,大大提高效率。

那在此基础上,还能如何改进呢?经过一年的潜意识思考和自己的实际需求,我加了 2 个功能:

看个操作视频就明白了:

主要对应于我自己的几个使用场景:

快速插入 Emoji 表情

快速插入一些特殊字符

添加客服常用语

添加常用命令

可以看出,做出这个更新,主要还是满足我自己的实际需求。如果恰好你也有这种痒点,欢迎试试新版 iPaste. 顺便做个硬广:含此功能的 **新版 iPaste 今天刚刚上架,高级版内购限时半价**,需要的朋友不要错过。

3.2) iPaste 还能玩出什么花

在 App Store 搜索「剪贴板」,会得到一堆应用,这是个充分竞争的领域。那么,iPaste 该如何定位、又能玩出什么花样?

首先,iPaste 的定位一直没变:简洁高效的剪贴板应用。

我知道,你肯定觉得「简洁高效」这话实在是被用滥了,说了跟没说一样。但我真的是这么做的。

在坚守 「简洁高效」 这个定位和底线后,iPaste 会在继续在易用性和效率上改进。比如,很多朋友希望能记录更多的剪贴板历史(虽然我目前依然觉得意义不大),而要在众多历史中找到需要的,搜索便成为必然。于是,入口就是个问题,我打算 在 Spotlight 搜索中集成 iPaste 的搜索。据我所知,目前同类应用中尚未出现此功能,iPaste 算是首创吧。恩,有了点子公布出来,省得后来者反而说我模仿抄袭。

另外,打算支持 CloudKit,并开发 iPaste for iOS. 恩,我知道,在 iOS 领域,剪贴板应用同样竞争非常充分,且有 Pin 这样的明星产品。不过,还是有事情可做的。比如,目前我在 macOS 上设计图片后,要发到朋友圈,需要先通过微信等方式先将图片及文字中转到手机,然后再发,很是麻烦。要是 iPaste for iOS 能做到 macOS 端复制、iOS 端一键发送,多好。

再有,基于 iPaste 还有个衍生产品:iTips,主要是 个人碎片化信息的管理,如公司发票抬头,追了哪些美剧、分别看到第几集,等等。目前还没想到具体的形态,暂不展开介绍。

尾巴

连续写了几篇长文,感觉要被掏空了。下周都不知道要写什么了,总不能继续写回忆录吧?😂

没办法,只能继续逼自己多输入,保证每周都有干货,晾晒在「自在开发」公众号。

9969 次点击
所在节点    分享创造
75 条回复
defunct9
2017-07-25 08:15:25 +08:00
不错
linboki
2017-07-25 08:22:48 +08:00
一……一本道?
linwan623910
2017-07-25 08:45:01 +08:00
可是我用 WIN
benjaminv
2017-07-25 08:57:34 +08:00
但是楼主的文章我都看完了。
在 ios 端,如果这个功能被输入法集成,你怎么办?
kslr
2017-07-25 09:11:18 +08:00
楼主抓住了营销的精髓。
i_have_to_pee
2017-07-25 09:11:28 +08:00
原来 iHost 也是楼主做的,我一直在用,挺好用的。
Cyrix686
2017-07-25 09:11:51 +08:00
iHost 用户继续支持 iPaste !
seasstyle
2017-07-25 09:13:29 +08:00
我用的 自己开发的 bitout
li1215101
2017-07-25 09:13:45 +08:00
出道是什么鬼。。。
illios
2017-07-25 09:14:59 +08:00
lz 厉害了。一个人做整套下来不容易。
quietjosen
2017-07-25 09:17:11 +08:00
@benjaminv 你说的对,对于常用语的插入,键盘确实是最佳交互。并且,一些第三方输入法已经做了这一点。但也有硬伤:你会为了插入常用语方便而特意安装输入法吗?尤其这个有可能获取你包括密码在内所有输入信息的 App.

我做 iPaste for iOS,有练手 iOS 开发的成份。并且,确实是自己有类似发朋友圈这样的需求,市面上的应用并做不到。
blacklee
2017-07-25 09:17:34 +08:00
很好。
我也是独立开发者,看你所写有挺多的收获。谢谢。

已关注公众号。
不过我觉得每周都出高质量长文是一件**极其**困难的事情,而且并不是非常必要的。
自由职业虽然是自律且不那么自由,但真没必要把自己搞得多么累。
quietjosen
2017-07-25 09:17:50 +08:00
@i_have_to_pee @Cyrix686 两位 iHosts 用户啊,握手 🤝
quietjosen
2017-07-25 09:18:27 +08:00
@li1215101 就是出柜喽~

就是开发做独立开发者。
quietjosen
2017-07-25 09:19:57 +08:00
@blacklee 确实**极其**困难,我每周都不知道这周要写什么…

因为不这么逼自己,很容易「自由」变「散漫」啊😂
robinshi2010
2017-07-25 09:20:12 +08:00
还是觉得楼主很厉害。
blacklee
2017-07-25 09:33:11 +08:00
@quietjosen 偶尔的散漫并不要紧,比如减脂健身里还有个欺骗日:连着几天管住自己嘴巴后来一天胡吃海喝。
以我自己浅薄( 16 个月)的经验,能够保持良好的节奏进行工作半年的话,就说明适合做自由职业者了。而且我觉得自由职业就是为了工作和生活的平衡,如果压力太大导致失去了这个平衡,那又为什么要做自由职业者呢?
quietjosen
2017-07-25 09:38:42 +08:00
@blacklee 恩,是的,平衡很重要。

不过,压力大小、节奏快慢,也是看自己状态。别的事忙,干活的事可以松下来。反之,就要多忙点,给以后别的事留出弹性。

我们独立开发的时长很相似嘛,多交流(你应该很容易找到我的微信等联系方式)。
caozhengi
2017-07-25 10:01:42 +08:00
之前一直用 ClipMenu。
刚才试了下 iPaste,全快捷键和可选折叠层级确实不错。
已付费,希望作者能持续改进
billdc
2017-07-25 10:03:02 +08:00
您好!请问一下,我使用 ihost 频繁提示没有权限,hosts 文件的权限好像总会被系统恢复,不知道大家有没有这个问题。
ipaste 我正在试用,有个弹框点击的太快了,没有找到脚本复制的位置,请问一下脚本复制到什么文件夹了?删除软件的时候会一起删除吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX