【嘉宾介绍】 @图拉鼎 ,独立开发者,热衷开发小而美的 App,作品 Manico,为 OS X 设计的快速 App 启动及切换工具。 【正文 】 1.请简单地介绍一下你自己(技术背景、学习经历、工作经历)。 我叫图拉鼎,目前是一个 iOS/Mac 开发者,在两个平台分别有一个独立作品,在 iOS 是,奇点微博客户端。在 Mac 平台是 Manico 效率启动工具。 在成为 Apple 生态圈的开发者之前,我在 Linux 开源世界折腾了五六年,我玩 Linux 系统,写 Ubuntu Tweak 开源软件,开发 Web 应用…也因此在 Ubuntu 背后的 Canonical 公司工作过两年。 2.在你所了解的 Swift 的开发历史中,有哪些好玩的事情? 接触 Swift 的这段时间来,应该是折腾与好玩都有吧。 记得在去年 WWDC 14 时首次揭晓 Swift 时,大家非常激动,因为事先完全不知道 Apple 会发布一门新语言,于是决定立刻开始学习,但是很快就发现这是一条很折腾的路。因为 Swift 是一门快速发展的语言,它的每个版本都与上个版本不兼容,即使 1.0 版本以后,1.1 和 1.2 版本的发布还是会导致旧有代码无法编译通过,因此在学习和应用 Swift 的过程没有坚强的内心是不行的。 好玩的事情主要来自新鲜,每天都能看到这个平台不断的发展,看到这个社区分享的新东西,不会枯燥,自然就会觉得好玩了。 3.Swift 是2014年增长速度最快的编程语言,是什么原因让 Swift 的发展如此迅速? 我觉得 Swift 发展快的根本原因是因为 iOS 开发者们的创造力被 Swift 释放了。因为 Objective-C 是一门和 C++ 一样古老的语言,尽管在过去几年也在不断进化拥有了一些高级语言特性,但是依然缺少很多特性。 Swift 的出现一下子让 Apple 生态圈有了一门足够现代的语言,无论是 Functional programming, Generic, Optional, Pattern match,都是不落后于当前主流编程语言的。更关键的是,Apple 将工具和开发环境做到了无缝地与 Objective-C 整合,这使得开发者可以立即在当前已有的项目采用 Swift,渐进式的采用 Swift。于是 Swift 在几乎没其他阻碍的情况下就这么迅速地发展起来了。 4.有人说Swift最终会取代 Objective-C,对此你是怎样认为的? 我认为 Swift 取代 Objective-C 是肯定的,这只是时间问题。不过这个过程可能会比较长,也许要五年或者十年。但是这取决于你如何理解「取代」,像我已经完全用 Swift 写出了奇点这个 App,在我这边可以说已经取代 Objective-C 了。另外我也知道国内外已经有不少新 App 是用 Swift 写的,老的 App 正在用 Swift 编写相关组件。对于一个正式发布不到一年的语言来说,这个趋势已经很不容易了。据说 Apple 会在明年用 Swift 重写 iOS 和 OS X 上的一些内置应用,如果这个过程顺利的话,这也是快速推动 Swift 取代 Objective-C 的一个积极信号。 总的来说,整个 Apple 生态圈 Swift 已经相当活跃了,已经有了大量的基于 Swift 的第三方库,甚至民间上已经有了几次 Swift 的相关会议了。也许不需要五年,用 Swift 写的新旧项目就会比 Objective-C 多了。 5.对于 iOS 开发的初学者,你有什么建议给他们? 我的建议也是我的亲身经历。不瞒大家,我本人也是间间断断学了三次 iOS 才真正入了门,前两次每次都是学了一点点就不知道接下去做什么了。后来真正上手也就是做奇点微博客户端的时候。所以我最大的建议就是以实际项目去操练 iOS 开发,不要为了学习而去学习,做到真正「学以致用」,那么入门及掌握一项技能是自然而然的事情。 6.作为一位独立开发者,你是怎样管理日常开发工作的? 独立开发者在时间和项目的安排上比较自由,想怎么管理就看给自己定什么目标。我当前的目标就是每个月都要发布一个新版本,带来新功能以及对旧有功能的改善和修复。 我用 OmniFocus 来管理项目,我会把自己的计划、用户的需求和反馈先统一整理到「奇点 Next」这个项目中,然后再从中选中优先级比较高的放进具体的版本项目里,如「奇点 1.4」,然后就开始有节奏的去完成里面的任务。开发的过程中我会每天或每隔几天就给内测用户发一个版本,他们会给我汇报问题,以便我尽早解决问题。过了每月中旬时,这个时候如果我还没完成新特性的话,我就会推到下一个版本去做,而只修复问题和提升稳定性,到了下旬的时候我会提交这个版本给 Apple 审核,一般都会比较顺利,最后月底的时候就能发出一个新版本。 在过去的三个月里,我已经按这个节奏发布了 1.1,1.2,1.3 版本,很快 1.4 版本也要审核通过了。由于每个人给自己定的目标、能力和效率都不一样,此时最重要的就是找对节奏。节奏对了,产品就会有条不稳地良好发展下去。节奏不对的话,要么战线拖太久导致难产,要么为了追求速度牺牲了产品质量或者自己的健康导致产品无法持续发展,这些都是我自己亲历过的事情。幸运的是我觉得我现在找到自己的节奏了。 7.你能否向我们介绍一下你的作品? 说到我的作品,我的 OS X 作品是一款叫 Manico 的桌面应用。我于 2012 年开发了这款工具,它是一个可以用快捷键来非常快速地启动和切换 OS X 应用的一个工具,非常合适键盘党,可以大大增强日常电脑使用效率。 另外一个就是 iOS 上的奇点微博客户端,它与一般微博客户端不同的是,它有一个独特的「订阅」模式,它能把微博变成像微信上的公众帐号功能一样,需要频频去刷新,会在后台默默收取最新的微博,然后只要在闲时想看微博时拿出来看看就可以了。能很好的把用户从「刷微博」这个状态中解放出来。 8.你能否谈一下你对开源的理解?你认为国内开源现状如何? 我对开源的理解也经历了从非常狭隘到开放多元的这么一个过程。记得当时刚刚玩 Linux 那会,接触并了解了自由软件运动,一度觉得世界上就应该只有开源软件这个自由并且伟大的东西,闭源都是邪恶的! 后来接触的东西越来越多,了解到开源只是推动软件向前发展的其中一种方式。很少软件只用一种的方式,更多的是混合的模式。比如 Apple,它从来就不是一个以「开源」为主旨的公司,但它系统的内核却是开源的,浏览器的核心 WebKit 也是开源的。WebKit 本身深刻的影响了整个软件世界还有移动互联网。再追溯上去的话,WebKit 本身又是脱胎于 KDE 桌面的 KHTML,这就是一个丰富多元且联系的世界。开源和闭源都在让这个世界变得更好。 对国内的开源现状,我觉得近几年是越来越好了。现在国内有不少有影响力的公司都有运营着自己的开源组件和背后的社区,让我们有机会直接接触到大公司内部第一手的开源软件。同时在国际上的参与度也越来越高。 我们在现在这个丰富的时代应该不是找不找到的好项目学习的问题了,而是找哪个好项目学习的问题了。 |