無論對手機應用程序開發員來說,還是對普通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上使用大量開源軟件。我們可以用這些開源軟件來開發屬于自己的應用程序,接著將它們放到其他手機上去。而且,或許還可以查看程序中最新崩潰列表的內容。