無論對手機(jī)應(yīng)用程序開發(fā)員來說,還是對普通iPhone用戶來說,3月6日都是非常特殊的一天。因?yàn)榻衲甑倪@一天,是iPhone軟件開發(fā)工具包(即Software Development Kit,以下簡稱SDK)問世的十周年紀(jì)念日。
我個人認(rèn)為,說它切實(shí)改變了許多人的生活也一點(diǎn)都不為過。不僅如此,它還給蘋果公司的業(yè)務(wù)發(fā)展帶來了很大影響。所以,今天我們就來回顧一下十年前iPhone SDK的開發(fā)過程。(為了方便各位讀者理解,本文將盡量不使用專業(yè)的科技術(shù)語。)
觸摸未來
對于我們當(dāng)中的大多數(shù)人來說,2007年6月底能夠用上第一款iPhone,就相當(dāng)于是觸摸到未來了。畢竟我們都很想知道在那塊玻璃屏幕后面和金屬機(jī)身里面,到底隱藏著什么樣神奇的功能。
雖然蘋果公司已經(jīng)向我們介紹了這款新產(chǎn)品的各項(xiàng)功能,但卻沒有告訴我們它是如何研發(fā)出這些功能的。也就是說,對于它的處理器、運(yùn)行速度、儲存空間、應(yīng)用程序開發(fā),我們是一無所知。唯一能夠確定的,就是這款新設(shè)備像一個黑銀色的盒子。
作為開發(fā)人員,我們很想知道這款設(shè)備到底有些什么功能,想知道軟件設(shè)計(jì)將會發(fā)生什么樣的改變??傊?,我們很好奇,也很想學(xué)習(xí)那些尚未接觸過的新知識。隨即了解之后,我們便知道了,那叫越獄。
越獄
沒過多久,我們就有了新發(fā)現(xiàn)。全新的文件系統(tǒng),在短短幾個星期的時(shí)間內(nèi)就問世了。又過了幾個月,我們解鎖了全部的本地應(yīng)用程序設(shè)計(jì)和使用體驗(yàn),形成了完整的開發(fā)工具鏈,大家也都紛紛開始為本地應(yīng)用程序編寫安裝程序。
當(dāng)然,所有這些成果之所以能夠順利取得,還是要感謝iPhone的研發(fā)工具。蘋果依靠的是與Mac操作系統(tǒng)一樣的基礎(chǔ)設(shè)施,他們選擇了一個類似的環(huán)境來不斷推進(jìn)開發(fā)流程,不斷嘗試新的方法。正是這種相似性,使得我們這些“外人”能夠在最短時(shí)間內(nèi)大致掌握蘋果內(nèi)部的產(chǎn)品和程序研發(fā)流程。
舉個例子,iPhone中的大多數(shù)軟件,都是利用Objective-C語言開發(fā)出來的。而Mac開發(fā)人員一直使用的是一款名為class-dump的逆向工程工具,主要用來展示一款應(yīng)用程序的不同組成部分,并且了解這些不同部分都是如何相互聯(lián)系、相互溝通的。在體驗(yàn)過首款iPhone中的應(yīng)用程序和基本框架之后,這款軟件就帶我們走進(jìn)了蘋果內(nèi)部編寫代碼語言的世界。
其中,最為重要的一個組成部分就是UIKit。它包含了所有的用戶界面部件,比如說按鈕和表視圖等等。由于它們與我們在Mac上使用的部件較為類似,因而開發(fā)一些點(diǎn)擊和滾動項(xiàng)目也就不怎么費(fèi)事。
另外,還有一個較為重要的組成部分,那就是操作系統(tǒng)Unix。蘋果選擇這一操作系統(tǒng)就意味著我們很快就能夠在iPhone上使用大量開源軟件。我們可以用這些開源軟件來開發(fā)屬于自己的應(yīng)用程序,接著將它們放到其他手機(jī)上去。而且,或許還可以查看程序中最新崩潰列表的內(nèi)容。