> Linux新闻 >

90后CEO的开源心得:Github 2500 star是如何炼成的

如果你是一名iOS开发者同时还是Github的重度使用者,那么你多半见过这个项目:PNChart,一个提供带动画的图表控件。截止到目前为止,PNChart在Github上的star数已经超过2500,是一个备受开发者喜爱的iOS第三方开源库。那么,你知道它的第一作者其实是国人、90后,并且已经有自己的公司了吗?

这个人就是周楷雯,除了PNChart,最近他还开源了Waver,一个类似Siri中的声波效果库。当记者联系他表达采访意愿后,他表示“如果能为开源发展贡献一份力量那再好不过了”,非常热心。

下面就让我们听他来分享一下,如何打造一个成功的iOS开源项目。

CocoaChina:非常感谢您能和大家分享自己的宝贵经验。首先请您简单介绍一下自己,以及您是如何开始现在的事业的?

Kevin:Hi 我是 Kevin,92 年出生,因为觉得做产品是有趣的事情,所以 2011 年开始着手学习编程、设计,并且开始尝试进行iOS开发。不过学习是件漫长的事情,我发现用漫长的时间去学习无穷无尽的模式和 API 是件挺悲哀的事情,所以本着生有涯而学无涯的精神,我按照自己想做的事情去学习需要的技能,无分深浅。

接下来的一年其实过得特别快,时间似乎快变成是按照月来计算的,每天都有很多要学的新东西。终于 2012年 5 月份我发布了第一款独立作品 Piner ,之后 2014 年 5 月份组建立了 Catch 团队,前段时间发布了我们的第一款产品 秒视,总的来说,和有趣的人做有趣的事情、创造一些有价值的产品、并鼓舞一些人,这些是我当下的事业。

CocoaChina:请介绍一下您的开源项目,您为何会参与开源?

Kevin:PNChart 是我 2013 年的时候重写 Piner 那款产品而做的,因为对动画和设计有着比较高的要求,发布后迅速聚集了大量 Star,并连续两周在 Github趋势的Objective-C语言分类排名第一,至今已经有很多国际友人做了贡献,以至于我想加点新功能都得重新读一遍,并修修他们留给我的 坑(笑)。

说到开源,其实和我有着很深的渊源,甚至影响了我的人生轨迹。 2007 年的时候我开始使用 Ubuntu,2009 年的时候开始使用 Twitter,而上面早期的朋友也都是使用 Linux 的,所以虽然软件匮乏,但是大家相互鸡汤,精神世界还是很丰富的,同时我转战于Gimp、Blender,以及各种Linux发行版之间,也参与了 Ubuntu Tweak的设计。

我一开始完全是个开源愤青,以完全使用开源产品为荣,鄙视一切不开源的东西。比较讽刺的是当我从 Linux 世界淘到第一桶金后,我就转移到了 Mac 平台,不是有句段子这么说的嘛,Linux 用户有钱就买 Mac。不过开源依旧是流淌在我血液里的东西,只不过对其的理解,从单纯的全部使用开源产品,转化成了知识的分享。在这个过程中我发现比较痛苦的一件事 是,你总是需要走过前人走过的路,去趟过那些坑,然后实现别人很早之前就已经实现的事情。如果牛人都可以记录下自己的心得为后来人开路,那么我想编程和开 发不会像现在这么令人望而却步,开源对人类而言会有更高的价值。

就 PNChart 来说,满足每个产品的需求是不可能的,但是我希望至少你在写这类控件的时候,有个东西可以帮你节省一些力气,我相信开源的价值就是打破这些知识壁垒,不让知识束之高阁。

CocoaChina: 您认为iOS开发有哪些方向适合做开源项目?

Kevin: 我觉得其实iOS的开源项目就像积木,使用开源项目的过程就是将这些积木一块一块的搭起来。做iOS方向的开源,开发积木块就可以,比如现在的一些热门 iOS开源项目,网络模块AFNetworking,图像模块GPUImage,以及交互小控件之类的,都属于这个范畴。不过最主要的当然还是做一个你用 得到的模块。高度整合的开发框架我觉得实用性不大,iOS 的更新很容易破坏掉这些东西,应用的跨iOS版本升级时擦屁股是很累的。

CocoaChina: 能否讲讲如何打造一个成功的开源项目,您觉得有哪些关键要素?

Kevin: 我觉得,最重要的是项目本身需要满足广泛的需求,在我开发PNChart之前没有什么既能动画,又能漂亮的iOS图表库,大家都没有,所以我做了一个,结 果大家很喜欢。其次是需要传播,到各类控件中心或代码库发发帖子,然后写个 Blog介绍一下。这两个是很重要的,因为根据长尾理论,这类符合刚需的东西在很长的时间内大家都需要,你的项目容易被找到,就更容易形成二次传播。

CocoaChina: 前不久CocoaPods宣布达成100万下载,已有6000+第三方库,您觉得iOS开源是否是一个趋势?

Kevin:开源在 Github 流行以来已经成为一种名片一样的东西,多写写开源的东西很有益身心的,能让你感受到纯粹的编程以外的事情,可能也能约炮,这个我只是推论,呵呵。

CocoaChina: 您认为开源的流行对iOS开发会有哪些影响?

Kevin:影响分为两方面,正面和负面,负面无非是一些人搭搭积木就说自己会编程了,工程质量降低。不过这是团队管理的事情,和开源与 iOS 没关系。正面当然很多了,消除知识壁垒比较有意义。 

CocoaChina:在国内参与iOS开源的人您知道的有哪些呢?私下里是否有交流?国内iOS开源的形势如何?

Kevin:国内参与开源的太多啦,私下肥皂也是捡的不少,不过我比较熟悉的是 Lex,我们一起共事过一段时间,他是一位比我优秀的开发者和交互设计者,做了很多有趣的开源模块,但是考虑到他已经当爹了,但是我还年轻,所以未来我还是比较看好我自己。

还有人见人爱的 Onevcat,前段时间还开源了 Swift 相关的知识,《Swift 100 Tips》。

以及国内 iOS 开发的领袖人物唐巧,最近也分享了Objective-C相关的知识, 《iOS 开发进阶》,我写下这段文字的时候,他应该正准备下午一点签售。

其 实我把开源看做是一个像小桥流水一样的事情,做好自己喜欢的事情,把能模块化的东西抽离出来,做成开源模块,优秀的人都在做这样的事情。说到底,开源是知 识的开源,不是代码的开源,商业化并不是开源的对立面,相反,很多商业公司集合了一群最牛逼的人做出来伟大的开源产品。

CocoaChina:做iOS开源项目是否与公司内的开发相矛盾?如何避免或化解开源项目与公司项目的冲突?

Kevin: 因为我是老板,所以主要是内心的斗争,to be or not to be 的问题,我是开源呢,还是不开源呢,私心总是会有的,并且常常排在第一位。但是需要明白的是,无论做什么产品,核心的竞争力不是那几段代码,而是团队的赋 予这个产品的灵魂。做过开源的人运营公司就懂这个道理,没做过的你可以跟他布道开源的好处,但千万别擅自将属于公司项目的代码开源,否则后果可能会很严 重。总的来说,这个还是看缘分的。

以上就是本次采访的全部内容,感谢来自Kevin的分享。

(责任编辑:IT)