【Mac技術概覽】(1)Mac開發簡介
說明:這是我對Apple開發文件《Mac Technology Overview》的翻譯,這是一份對Mac平臺開發技術進行總體介紹的文件,適合初學Mac開發的人員閱讀,可以較快地瞭解Mac開發所需掌握的工具和技術,對整個Mac平臺的開發架構也會有總體的認識。整份文件共有9篇,我會根據翻譯進度定期釋出。
OS X作業系統將穩定的核心和許許多多先進技術結合在一起,幫助我們在Mac平臺上打造出世界級的產品。瞭解並掌握這些技術,可以幫助我們提高開發效率,也將帶領我們領略OS X的諸多關鍵特性。

1.1 概覽
本教程將向大家介紹我們可以開發什麼樣的Mac軟體,也會講解開發Mac軟體的各種技術並提供相關資訊資源。但是本教程不會介紹使用者級的系統功能或者與軟體開發無關的功能。
1.1.1 OS X具備分層架構(每一層均提供不同的關鍵技術)
把OS X的實現視為不同的層級對我們是有所幫助的。系統較低的層級為所有軟體提供了依賴的基礎服務。上面的各個層級都包含了一些更加複雜的服務和技術,這些服務與技術又是基於它們之下的層級被構建出來的(或者是一種補充)。

圖1-1 OS X的各個層級
一種技術所在的層級越低,它所提供的服務就越加的具體。一般來說,較高層級上的技術會包含一些較低層級的技術,從而實現一些常見的應用行為。從經驗來看,我們要使用最高層級的程式設計介面去滿足我們的應用所要實現的目標。以下是OS X各個層級的簡要概括。
· Cocoa(Application)層包含了實現應用使用者介面、響應使用者事件及管理應用行為的相關技術。
· Media層包含了一些特定的技術,主要實現視聽媒體的播放、錄製、編輯以及2D、3D圖形的渲染和動畫生成。
· Core Services(核心服務)層包含了許多基礎的服務和技術,涉及範圍從引用自動計數(Automatic Reference Counting)、底層網路通訊到字串操作、資料格式化等各個方面。
· Core OS(核心作業系統)層定義了硬體和網路通訊相關的程式設計介面,包括利用計算機CPU和GPU執行高效能運算任務的一些介面。
· Kernel and Device Drivers(核心與裝置驅動)層是由Mach核心環境、裝置驅動、BSD庫函式(libSystem)和其他底層元件所構成的。這一層對檔案系統、網路通訊、安全、程序間通訊、程式語言、裝置驅動均提供了支援,並對核心進行了一些擴充套件。
1.1.2 我們可以為Mac開發許多不同型別的軟體
使用一些開發人員工具和系統框架,我們可以為Mac開發多種多樣的軟體,包括:
· 應用(App) 。應用可以幫助使用者實現一些任務,無論是內容創作、資料管理、與他人溝通還是娛樂。OS X提供了諸如應用擴充套件和handoff這樣豐富的系統技術,我們可以利用這些技術去擴充套件應用的能力,增強我們的使用者體驗。
· 框架和庫(Frameworks and libraries) 。框架和庫實現了應用之間的程式碼共享。
· 命令列工具和後臺駐留程式(Command-line tools and daemons) 。命令列工具允許專業使用者在Terminal應用的命令列環境中進行資料操作。後臺駐留程式通常會持續不斷地執行,作為服務端負責處理客戶端的請求。
· 應用外掛與可載入bundle(App plug-ins and loadable bundles) 。外掛對其他應用的功能進行擴充套件;bundle包含了應用執行時可以動態載入的程式碼和資源。
1.1.3 遷移Cocoa Touch應用時應注意API的異同
Cocoa和Cocoa Touch應用的技術棧有許多相似之處。兩個平臺之間的一些系統框架是相同的(或差不多一樣),包括Foundation、Core Data和AV Foundation。這種API的共通性使得一些遷移任務變得簡單。例如,對Cocoa Touch應用的資料模型進行遷移就比較簡單。
其他一些遷移任務則因為所依賴的框架在平臺之間存在差異,使得遷移更具挑戰性。例如,遷移controller物件和修改使用者介面都是更費勁的任務,因為它們依賴於AppKit和UIKit,而這二者分別是Cocoa和CocoaTouch層的主要應用框架。
1.2 參考
Apple提供了一些開發人員工具和其他一些的資料來支援我們的開發工作。
Xcode是Apple的整合開發環境,幫助我們設計、建立、除錯和優化軟體。我們可以從Mac App Store中下載Xcode。
關於OS X開發工具的概覽,請訪問 ofollow,noindex">Xcode Apple Developer網頁 。Xcode功能的概覽,請閱讀 Xcode Overview 。
OS X Developer Library包含了一些文件、示例程式碼、教程和編寫OS X應用所需的其他一些資料。我們可以從 Apple Developer網站 或Xcode中訪問OS X Developer。在Xcode中,請選擇Help > Documentation and API Reference,可以在Organizer視窗中檢視文件和其他一些資源。
除了OS X Developer庫之外,另外還有一些資源是介紹為Mac開發其他一些不同型別的軟體的:
· Apple Open Source 。Apple把OS X的一些主要元件(包括UNIX核心)對開發人員社群進行開放。要了解Apple的開源開發的承諾,請訪問 Open Source Development Resources 。要更深入學習一些特定的開源專案(比如Bonjour和WebKit),請訪問 Mac OS Forge 。
· BSD 。Berkeley Software Distribution(BSD)是OS X核心環境中必不可少的基於UNIX的一部分。書店裡有幾本BSD和UNIX的好書,但我們也可以在一些涉及BSD變異版本的網站上找到其他一些資料,例如 The FreeBSD Project 。
· 第三方書籍 。我們可以在網上和一些書店的技術區中找到幾本關於Mac應用開發的好書。
英文原文在此: MacOSX/Conceptual/OSX_Technology_Overview/About/About.html" target="_blank" rel="nofollow,noindex">About Developing for Mac MacThinking翻譯於2018-10-13

歡迎關注微信公眾號MacThinking