說說我出道後的處女作:剪貼簿神器 iPaste

atJason發表於2017-07-25

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

  • 第一次學習 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,主要是 個人碎片化資訊的管理,如公司發票抬頭,追了哪些美劇、分別看到第幾集,等等。目前還沒想到具體的形態,暫不展開介紹。

尾巴

連續寫了幾篇長文,感覺要被掏空了。下週都不知道要寫什麼了,總不能繼續寫回憶錄吧??

沒辦法,只能繼續逼自己多輸入,保證每週都有乾貨,晾曬在「自在開發」公眾號。

自在開發
自在開發

相關文章