无论对手机应用程序开发员来说,还是对普通iPhone用户来说,3月6日都是非常特殊的一天。因为今年的这一天,是iPhone软件开发工具包(即Software Development Kit,以下简称SDK)问世的十周年纪念日。
我个人认为,说它切实改变了许多人的生活也一点都不为过。不仅如此,它还给苹果公司的业务发展带来了很大影响。所以,今天我们就来回顾一下十年前iPhone SDK的开发过程。(为了方便各位读者理解,本文将尽量不使用专业的科技术语。)
触摸未来
对于我们当中的大多数人来说,2007年6月底能够用上第一款iPhone,就相当于是触摸到未来了。毕竟我们都很想知道在那块玻璃屏幕后面和金属机身里面,到底隐藏着什么样神奇的功能。
虽然苹果公司已经向我们介绍了这款新产品的各项功能,但却没有告诉我们它是如何研发出这些功能的。也就是说,对于它的处理器、运行速度、储存空间、应用程序开发,我们是一无所知。唯一能够确定的,就是这款新设备像一个黑银色的盒子。
作为开发人员,我们很想知道这款设备到底有些什么功能,想知道软件设计将会发生什么样的改变。总之,我们很好奇,也很想学习那些尚未接触过的新知识。随即了解之后,我们便知道了,那叫越狱。
越狱
没过多久,我们就有了新发现。全新的文件系统,在短短几个星期的时间内就问世了。又过了几个月,我们解锁了全部的本地应用程序设计和使用体验,形成了完整的开发工具链,大家也都纷纷开始为本地应用程序编写安装程序。
当然,所有这些成果之所以能够顺利取得,还是要感谢iPhone的研发工具。苹果依靠的是与Mac操作系统一样的基础设施,他们选择了一个类似的环境来不断推进开发流程,不断尝试新的方法。正是这种相似性,使得我们这些“外人”能够在最短时间内大致掌握苹果内部的产品和程序研发流程。
举个例子,iPhone中的大多数软件,都是利用Objective-C语言开发出来的。而Mac开发人员一直使用的是一款名为class-dump的逆向工程工具,主要用来展示一款应用程序的不同组成部分,并且了解这些不同部分都是如何相互联系、相互沟通的。在体验过首款iPhone中的应用程序和基本框架之后,这款软件就带我们走进了苹果内部编写代码语言的世界。
其中,最为重要的一个组成部分就是UIKit。它包含了所有的用户界面部件,比如说按钮和表视图等等。由于它们与我们在Mac上使用的部件较为类似,因而开发一些点击和滚动项目也就不怎么费事。
另外,还有一个较为重要的组成部分,那就是操作系统Unix。苹果选择这一操作系统就意味着我们很快就能够在iPhone上使用大量开源软件。我们可以用这些开源软件来开发属于自己的应用程序,接着将它们放到其他手机上去。而且,或许还可以查看程序中最新崩溃列表的内容。