刚刚在 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