Manico 2.0 開發心路歷程
剛剛在 iTunes Connect 里點下了「提交以供審核」的按鈕,這意味著從四月份開始的 Manico 2.0 開發周期正式告一段落了。
過去的十個月,我把主要的精力都花在了「奇點」這款微博客戶端上。它從剛誕生時那款簡陋的客戶端,經過一段時間的進化,已經漸漸有了一些特色功能及忠實的用戶。而作為曾經主打的 OS X 工具——Manico,看起來退居到了幕后。
事實上這段時間,我也沒少照顧這個項目,并且對其做了最重要的一個決定,那就是:用 Swift 重寫。現在看起來這個決定是正確的,它也順利地完成了蛻變,因此,我想聊聊這個過程中我的一些心路歷程。
Manico 是我繼 Ubuntu Tweak 項目后的第一個商業獨立軟件。在 2012 年的時候,它只是我自用的一個工具,后來我有意轉移至 OS X 平臺做開發,于是決定將其好好打磨一番并嘗試做成商業軟件,于是就有了 2013 年 7 月時我推出官方網站銷售它、2013 年 10 月登錄 Mac App Store 銷售的這些事。
在登錄 Mac App Store 以后,Manico 有過一些「輝煌」的經歷,幾次榮登銷售榜前十、前五,然而現實是作為一款小眾的 Power User 工具,Manico 并沒有帶來我很多收益。但是我還是非常享受這個創造并觀察的過程,畢竟 Manico 是我的第一款商業軟件。
到了今年年初,Manico 在經過用戶的使用、反饋以及我的不斷開發下,版本號已經從當初的 1.0 到了 1.4.4,增加了不少新特性,用戶也越來越喜歡。同時我也意識到,當時作為一個入門者開發的 Manico,現在在特性的不斷堆積下,舊的架構已經滿足不了未來的擴展了,還有很多問題還有待去解決。就這樣,借著當時學習 Swift 的熱情,以及對 Manico 現狀的不滿,我決定用 Swift 重寫它。
于是,在四月份,我以新建 Xcode 和 Git Repository 的形式,完全拋開了過去,從零開始重寫 Manico。
重寫的過程當然是艱辛的,特別是當還有另一款 App 需要積極和開發維護的情況下。在四月份,一切沒有什么進展,只是做了一個窗口而已,整個五月都沒有碼一行字,六月又開始繼續這個項目……這也意味著開發不斷的跳票,本來目標定在八月,跳到九月、十月……
重寫本身就是一個很有爭議的事情,業界開發都提倡重構而不是重寫,然而我就這樣下定了決心重寫。重寫過程中,通常會有厭倦的情緒,因為你要把曾 經做的事情再做一遍,幸好對于我來說這不是一個挑戰,因為我用新的語言、新的架構去實現 Manico,這本身就是一件完全新鮮的事情。重復發明輪子,把輪子越做越好,也是很值得去做的一件事情,不是么?
對我來說,最大的挑戰還是同時維護和開發兩款軟件了。我給奇點及用戶的承諾是每月都會更新奇點,不斷完善它的體驗,然后我又要再擠出時間來做 Manico,于是時間及安排方面就導致了 Manico 只能不斷被跳票……
所幸困難一個一個的解決了,重寫成功的 Manico,不僅更好地適配了新的系統,更穩定且「好看」,而且還會帶來一個「新特性」,讓用戶能更好的享用它。這個,我在今天的這篇開發手記就不介紹了,等 Apple 審核通過以后,我再好好地記錄一番吧。
開發過程中還有一些有意思的事情,略舉一二:
開發跟不上 Swift 的變化
Manico 2.0 重寫的時候,還是 Swift 1.x,后來年中的 WWDC 過后,Swift 推出了 2.0,于是我又要把它調整成 Swift 2.0。Swift 2.0 的每個 Beta 版本又有不少變化,于是每次我折騰完奇點以后又回頭編譯 Manico 后發現又不工作了,于是又進行調整……就這樣反復以后,從跟不上 Swift 的變化到習慣,我相信以后不會再有更折騰的被語言的進化拖著走的體驗了,想想也是非常好玩的。
刷新周邊的工作
2013 年推出 Manico 的時候,它不僅僅是一款 Mac 軟件而已,它還有一個帶支付和發貨的官方主頁。當時我只是外包了一下主頁的設計,然后我就自己碼前端代碼、寫文案、做廣告截圖、做支付寶支付集成,把所有的一切都給做了。
到了 2015 年的 Manico 2.0,很多東西都陳舊了,需要一齊更新:比如首頁的宣傳圖,以前我是在我的 MacBook Air 上做完的 Manico,于是宣傳圖就用了 MacBook Air,現在我在 MacBook Pro 上完成的 Manico 2.0,于是我就要把宣傳圖變成 MacBook Pro;當時還不支持 Retina,現在網頁都要刷新成支持 Retina;Mac App Store 里的截圖,都是 Mavericks 背景的,文案也寫的很差勁,現在都要一齊更新為 El Capitan 風格的截圖,與此同時也更新文案…
感覺不是重寫一款軟件,而是把周邊一切都重做了。有點力不從心,除了寫代碼以外,其他我也只是隨意玩玩不夠專業,幸運的是遇到了一個很好的「乙方」,輔助我完成了這些周邊的工作…這些工作,將在 Manico 2.0 正式發布的時候,一齊上線。
還有很多想說的,瑣碎的,這里就不一一而足了。
總之回過頭來看,看到自己和過去的兩年前,對做好產品的熱情不減,自己也能看到自己做的比以前更好,就是一件很高興的事情。
當然最終的結果,還是要廣大用戶來鑒定了。那么,希望審核過程一切順利,12 月初讓我正式揭曉 Manico 2.0 吧!
附圖:Manico 2.0 的前五個 Commit