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

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

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

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

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

若是如今作个新产品,事先必定会有充分的调研,好比用户需求是否真实存在、市场容量、竞品分析、技术可行性分析等等,而后才会立项。web

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

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

这里衍伸出一个话题:作产品,是作本身须要的产品,仍是作大众须要的产品?固然,若是这二者重合,最好。若是不,建议起步时选择本身须要的产品。最直接的好处是,你本身就知道产品应该作成什么样子,跳过了用户调研的环节,也不至于跑偏。安全

不过,这个方式有个很大的局限:一般,本身的需求有限,而且会是个小点子,不利于产品作大。并且,产品作大后,就再也不是当初本身想要的东西了,又变成了作大众需求的产品。因此,根本上是 在作本身需求的产品的时候,摸过出作产品的路子,进而推演到大众需求。微信

这里引用在 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.app

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

1) iPaste 夺走个人第 1 次,一次又一次

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

  • 第一次学习 Swift
  • 第一次学习 macOS 开发
  • 第一次给产品起名
  • 第一次设计 Logo
  • 第一次独立完成一个产品
  • 第一次审核被拒(以及 N 次)
  • 第一次收到用户付费
  • 第一次收到用户反馈
  • 第一次收到海外用户反馈
  • 第一次推广
  • 第一次付费推广
  • 第一次开源代码给别人用
  • 第一次…

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) 独立完成一个产品

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

固然,因为精力和能力有限,我也不可能作好全部的方面,目前主要的精力是开发和推广。对于作很差的地方,能够:

  • 简单作一下,将就着;
  • 花时间学习,作好;
  • 请人帮忙作。

不一样的事,处理的方式不一样。

  • 好比 Logo 的设计,我目前倾向于请人作。好比 Klib 的图标,是由 Allen 帮忙设计的。
  • 好比程序里的图标,我基本上是在网上免费图标的基础上,简单修改下。
  • 好比推广,很难外包给别人,只能本身硬着头皮上。

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

另外,本身一我的作也是有好处的。好比,不须要与人商量,就减小了不少沟通成本。尤为是各方意见不一致时,要达到最终结论,一般须要消耗大量的时间,甚至是返工并带来额外开发成本。而一我的,则没有这样的问题。

在实际作事的过程当中,也养成了本身的习惯,好比:

  • 使用 Omni Focus 管理项目要作的事、测试用例
  • 在开发功能时,就完善全部单元测试、测试用例
  • 数据结构、UI、业务逻辑的开发步骤
  • 使用虚拟机来测试操做系统的不一样版本、不一样语言

创建这些习惯的过程是痛苦的,由于要摸索全部的可能性,摒弃不适合的,最终造成适合本身的方式。而一旦创建,会有很大的收益。在下次作相似的事情时,好的习惯会大大提升效率,避免走大的弯路。

1.2) 第一次出门吆喝

本身辛苦作出来的产品,天然是但愿更多人用;能赚更多钱,固然更好。但是,酒香也怕巷子深,尤为如今你们的注意力被各类事情分散着,要在这样的前提下,让更多须要的朋友知道本身的产品,是个很大的挑战。

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

  • V2EX
    • 这里汇集了不少愿意尝鲜的极客,他们愿意尝试那些新鲜出炉的粉嫩产品,并予以本身的确定和鼓励。
  • 36kr Next
    • 如今,这个产品基于处于半死不活状态,我感受。
    • 当年,在 Next 发布贴贴板,仍是带来了很多的流量。
  • Mac 玩儿法
    • 本身认真接触的第一个自媒体,是 Frank 一我的作的,佩服。

而这些,所有是国内的媒体。如何在海外推广?非常头大。其中,我尝试了 生平第 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.

精准翻译过来,就是:

  • 我将应用降价为 $1.99
  • 周二的收入,对方提成 30%
  • 对方至少收 100 份的费用,即 $70,最多收 $1000

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

因而,我以后再没试过付费推广…

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

  • 突击爆光
    • 尤为在产品发布的时候,多家媒体同时爆光,甚至会有 霸屏 的效果。
    • 好比,当用户在微博上看到 iPaste 的报道,可能跳过了。可若是接着又在少数派看到、在即刻订阅上看到,就确定会加深印象。或许会生出兴趣,尝试一番。
  • 为以后的搜索作铺垫
    • 咱们在须要某类产品时,除了向周围的高手求教,也可能本身去互联网搜索。而这些媒体的报道,则会成为被搜索到的基础。尤为是 权威媒体的报道,会有更高的搜索权重
    • 这里说一个小技巧:本身在写文章时,要「面向搜索引擎」,而不只仅是标题党。好比,「夜深了,熄灯了,老公居然不理我,还在玩这款游戏?!」这样的标题,其实对于搜索引擎并不友好。对于标题这样重要的因素,不包含产品的名字,是不能接受的。

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

对于口碑传播,固然首先要靠产品的硬实力,毕竟首先产品要好,用户才愿意消耗本身品牌价值,去推荐你的产品。固然,这其中也存在必定程度的可操做性,好比在程序角度诱导用户分享,以及分享送 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 个功能:

  • 编辑及管理剪贴板历史
  • 增长 Pin 历史分组

看个操做视频就明白了:

主要对应于我本身的几个使用场景:

快速插入 Emoji 表情

  • macOS 系统自带的Ctrl + Command + Space 呼出 Emoji 和符号键盘,问题在于:效率不高:系统列出了无数的表情,而我本身经常使用的就那么几个。虽然说有历史、收藏夹分组,但每次都要手动切换,还要移动鼠标,麻烦。
  • macOS 中运行的其它程序,如微信、Telegram、Skype 等等,每家 Emoji 表情的 排列不一致、长得不同、交互也不同。每次要在不一样的排列中找,有点痛苦。
  • 在 iPaste 增长了此功能后,我能够按依次按 Shift + Command + VCommand + AA/B/C,快速输入指定的 Emoji 表情。全程使用固定的快捷键、无需鼠标,高效、舒服

快速插入一些特殊字符

  • 好比,macOS 快捷键中经常使用的 等特殊字符,在回复用户邮件时,时不时会用到,几乎每次都要到 Google 搜索,而后再粘贴过去。
  • 如今,我会建立一个专业的 Pin 分组,用于输入这些特殊字符。

添加客服经常使用语

  • 好比,我常常我回复用户的问题。而这些问题中,不少是重复的,回复也是相似的。有了 Pin 分组功能,我能够为每一个产品添加经常使用的回复语,用于在邮件中快速添加。

添加经常使用命令

  • 好比 gc master; git merge dev; gc dev; 用于切至 Git 主分支、合并、切回 dev 分支。
  • 有时,须要对命令作简单调整,在以前的版本中,就有点痛苦。由于我须要屡次 Pin/Unpin,才能让新 Pin 住的历史,并使用原来的快捷键。提及来有点绕,用过 iPaste 以前版本的朋友,应该明白我在说什么。

能够看出,作出这个更新,主要仍是知足我本身的实际需求。若是刚好你也有这种痒点,欢迎试试新版 iPaste. 顺便作个硬广:含此功能的 新版 iPaste 今天刚刚上架,高级版内购限时半价,须要的朋友不要错过。

3.2) iPaste 还能玩出什么花

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

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

我知道,你确定以为「简洁高效」这话实在是被用滥了,说了跟没说同样。但我真的是这么作的。

  • iPaste 的交互基于菜单,已经不可能更简洁了。
  • iPaste 全部关键操做都支持快捷键,全程不须要使用鼠标或触摸板。

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

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

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

尾巴

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

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

自在开发
自在开发
相关文章
相关标签/搜索