换肤

专门网

iPhone十年越狱史

2018-03-10 10:26:24 | 来源:猎云网 | 作者:
今天我们就来回顾一下十年前iPhone SDK的开发过程。

ce8e7ae6a7e42ac1.jpg

【猎云网(微信号:ilieyun)】 3 月 9 日报道(编译:田小雪)

无论对手机应用程序开发员来说,还是对普通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上使用大量开源软件。我们可以用这些开源软件来开发属于自己的应用程序,接着将它们放到其他手机上去。而且,或许还可以查看程序中最新崩溃列表的内容。

我还清楚地记得第一次使用当前操作系统名称查看系统信息时的情形。

早期应用程序开发

其实,除了我还有很多其他开发人员也认为,苹果公司新产品背后的开发流程,与它颠覆性的外观设计一样神奇。所以,当时出现针对iPhone的应用程序开发热潮,也并不是一件稀奇事。

对于新兴技术开发人员来说,最为重要的事件,无疑就是独立开发者大会C4。当时,那场大会的举办时间是 2007 年 8 月。不少参会者都拿着新款iPhone,认真探索它的各种功能。而我们当中的大多数人,都是有过Mac开发经验的研究员。但即便如此,我们还是认为参加苹果的全球开发者大会,听公司介绍新产品的研发和功能,是一件非常“幸福”的事。

此外,公司还针对iPhone应用程序编程接口举办了一场编码比赛。用大会组织者Jonathan Rentzsch的话说,他希望我们能够充分发挥自己的想象力和创造力,拿出新颖的想法和令人信服的产品。所幸,我们做到了。

我自己是开发了一款在JavaScript中应用图形计算器的网页应用程序,当时主要也是为了表达自己对于苹果几个月前所拿方案不太满意。因为在当时那个方案中,用户界面比较过时、比较难用,而且运行速度非常缓慢,并没有达到我们当中大多数人所期望的那种效果。

另外,那些本地应用程序也是让我们大吃一惊。当时比赛的冠军得主,是开发了一款视频会议应用程序的Glen Aspeslagh和Ken Aspeslagh二人。他们早苹果三年就研发出了带有前置摄像头的硬件设备,还自行编写了一些类似FaceTime的程序代码。要知道,首款iPhone问世时是没有摄影机的,所以他们的研发成果着实让人佩服。

对于我个人而言,在比赛中拿到第二名的作品,才更好地代表了未来的发展方向。首先,那是一款游戏;其次,在移动设备上的运行效果非常好。而且,更为重要的是,它告诉我们,优秀的设计和编程确实能够将现实生活中的具体事物融入电子设备当中,在触摸屏上实现流畅操作,并且在较大程度上优化整体使用效果。

在C4 大会召开的前几天,Lucas Newman和Adam Betts二人开发出了一款名为Lights Off的应用程序。在那之后,Lucas就开始帮我开发越狱工具。到后期阶段,他还给了我源代码,让我能够评估这些工具的使用效果。所幸的是,我还算比较擅长备份和维护软件。说不定读者现在手中使用的新款iPhone X,仍然用的是我们十年前就非常喜欢的代码。

图四

如果你是一位使用Xcode的开发员,那是可以在GitHub上看到这一项目的。而且,Lucas当时发给我的所有内容和资料,也全都保存在了该项目的“越狱”文件夹中。Xcode项目适用于那套代码,所以可以直接进行开发和运行。除非必要,否则我们不会进行任何改变。与原来的项目相比,Xcode运行起来要更加容易一些。不过,对分辨率的要求,就不要太高了。

在所有代码中,你将会看到所谓的根视图控制器。要记住,当时我们都在学习如何从零做起自主编写应用程序。所以,对于故事板和资产目录这类现在看来理所当然的工具,当时是完全缺乏的。

当然,如果你不用Xcode的话,那还有其他选择。iPhone铁粉Steve Troughton-Smith有一款加强版,在苹果应用商店中有售。我到现在还非常喜欢这款游戏,也经常玩,它对iMore的Hall of Fame的入门介绍还是非常好的。说到这里,工具有了,开发志向也有了,接下来应该做什么呢?

声明:该文章版权归原作者所有,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系。

我要评论

共有 0 条评论

微博话题

最新评论

会员登录 ×