Mac OS X 開發工具概述

來源:互聯網
上載者:User
本節內容:

Macintosh 的新的開發人員 
有經驗的 Macintosh 開發人員, Mac OS X 以前 
使用非蘋果整合式開發環境的 Macintosh 開發人員 
工具開發人員 
外掛程式開發人員 
驅動和系統軟體開發人員 
純 Java 開發人員 
方案供應商 
QuickTime 開發人員 


Macintosh 的新的開發人員

如果您初識 Mac OS X 並且有一個圖形化使用者介面的應用程式要移植到 Mac OS X ,從下面的部分開始:

  • “移植一個現有的 UNIX 應用程式”

  • “移植一個現有的視窗應用程式”

如果您有一個 Java 應用程式並且您想要確保它在 Mac OS X 上運行效果最佳,請參考“純 Java 開發人員”。

如果您一切從頭開始,請先參考“沒有現有應用程式”。


沒有現有應用程式

從頭開始編寫一個新的 Mac OS X 圖形化使用者介面應用程式的最快的方法就是使用 Cocoa 應用程式環境。 Cocoa 架構已經為您完成了很多的工作,提供了許多使用者介面還有很多底層的功能,例如 I/O 和應用程式間的通訊。如果您已經使用 Cocoa 開發了一個應用程式,維護工作就會很容易並且代碼很容易重複使用,這樣就保證了您的程式的升級要比原始的開發還要快。然而,如果您打算把您的程式移植到其它的平台,您可能想要全部或者部分使用面向進程的調用而不是使用 Cocoa 架構。在這種情況下,您應該使用 Carbon 應用程式環境。

用於開發 Cocoa 和 Carbon 的主要工具是 Xcode 應用程式和 Interface Builder ;要得到這些工具的介紹,請參考第三章,“蘋果整合式開發環境”。對於調試和最佳化您的應用程式,原始碼控制等任務有許多其它非常有用的工具。要獲得更多資訊請參考第四章“開發過程”。

如果您想要編寫一個純 Java 應用程式,請參考“純 Java 開發人員”。

對於那些沒有圖形化使用者介面的程式,請從以下的章節開始:

  • “工具開發人員”

  • “外掛程式開發人員”

  • “驅動和系統軟體開發人員”


移植一個現有的 UNIX 應用程式

由於它與 BSD 的緊密的關係,絕大多數 UNIX 應用程式的後端(也就是無圖形化使用者介面部分)能夠在不修改或者很少改動的情況下運行在 Mac OS X 裡。對於一個設計在命令列裡啟動並執行 UNIX 工具或者公用程式,您可能不需要多更多的開發工作。然而,這樣的一個應用程式只是對其他 UNIX 開發人員和少數的高端使用者有用;絕大多數 Mac OS X 使用者更喜歡與 Finder 打交道而不知道怎麼使用終端( Terminal )應用程式。

如果您已經使用 X Window 系統( X11R6 )介面開發了您的應用程式,您可能只要做少量的改動就可以在 Mac OS X 裡編譯您的應用程式。蘋果提供了一個 X Window 系統的實現(http://www.apple.com.cn/macosx/x11/ )。這個解決方案對於那些習慣於 X Window 系統並且對應用程式沒有其它期望的有經驗的 UNIX 使用者來說是夠用了。

但是,如果您希望您的應用程式對 Mac OS X 大量的主流的使用者有吸引力,您必須提供一個標準的 Mac OS X 使用者介面。一個 Mac OS X 使用者決不應該常常使用命令列在一個具有圖形化使用者介面的應用程式裡去執行任何任務。不僅如此, Mac OS X 使用者期望他們的應用程式遵循使用者體驗文檔裡的“ Aqua 人機介面準則”裡推行的標準。蘋果和第三方開發商的表現良好的應用程式賦予 Mac OS X 世界上最好用的介面的榮譽,並且如果一個應用程式不遵循這些準則會被視為不友好和難以使用。

您可以使用 Cocoa 應用程式環境和 Interface Builder 應用程式快速完成一個標準的 Mac OS X 圖形化使用者介面作為您的應用程式的前端(請參考“ Cocoa ”獲得 Cocoa 的一個簡要的介紹)。 Interface Builder 和所有其它您需要的用於 Cocoa 開發的工具都可以在 Xcode 裡以及 ADC 網站上找到。要馬上開始,請參考第三章,“蘋果整合式開發環境”。要瞭解更多關於把 UNIX 應用程式移植到 Mac OS X 的資訊,請參考移植文檔裡的“ UNIX 移植指南”。

您還可以使用 AppleScript Studio 給一個 UNIX 命令列工具添加一個 Aqua 圖形化使用者介面。例如,請參考 Developer/Examples/AppleScript Studio/Archive Maker/Application.applescript 。要獲得更多關於 AppleScript Studio 的資訊請參考“方案供應商”。


移植一個現有的視窗應用程式

儘管 Microsoft Windows 和 Mac OS X 共用許多基本的圖形化使用者介面範例-例如應用程式視窗,對話方塊,控制項(按鈕,進度條,還有其它類似),以及菜單條-但是在細節以及兩個使用者介面實現的方式上有著很大的區別。 Mac OS X 使用者期望他們的應用程式之間盡量保持一致和連貫,如果一個應用程式沒有遵循 Mac OS X 使用者介面( Aqua )標準他們會認為這個應用程式品質低等而且難以使用。要瞭解更多關於 Microsoft Windows 和 Mac OS X 使用者介面之間的區別請參考: http://developer.apple.com/ue/switch/windows.html 。

建立遵循 Aqua 標準的圖形化使用者介面最容易的方法就是使用 Interface Builder 。要瞭解 Interface Builder 請參考第三章“蘋果整合式開發環境”。

如果您的 Microsoft Windows 應用程式具有一些特定的特徵,把它轉變成一個 Mac OS X 應用程式應該非常直接。這些特徵有:

  • 使用 C , C++ , Objective-C ,或者 Objective C++ 編寫

  • 圖形化使用者介面代碼與後端完全分開

  • 後端使用面向進程的代碼而不是 Microsoft 基礎類庫或者一些其它面對對象的架構

在這種情況下,您可以把 Windows API 的調用替換為 Carbon API 的調用。除此之外,如果您的圖形化使用者介面代碼與您的其它代碼是分開的,您可以使用 Cocoa 來為您的應用程式建立一個標準的 Aqua 圖形化使用者介面。您可以使用 Xcode 應用程式來編寫您的面向進程的代碼以及使用 Interface Builder 來建立您的圖形化使用者介面。要瞭解 Xcode 應用程式和 Interface Builder 請參考第三章“蘋果整合式開發環境”。還有許多其它工具對您調試和最佳化您的應用程式,原始碼控制等很有協助。要獲得更多資訊請參考第四章“開發過程”。

要獲得轉換一個面向進程的視窗應用程式為一個 Carbon 應用程式的建議和參考,請參考“從視窗 Win32 API 移植到 Mac OS X ”( http://developer.apple.com/macosx/win32porting )。要得到 Mac OS X 標準圖形化使用者介面的詳細資料,請參考使用者體驗文檔裡的“ Aqua 人機介面指南”。


有經驗的 Macintosh 開發人員, Mac OS X 之前

如果您有一個用 Mac OS 進程 API 編寫的 Mac OS 9 或者更早的應用程式,您可以在必要時把不再支援的函數替換為 Carbon 函數然後使用 Xcode 編譯和連結您的應用程式。如果您的圖形化使用者介面與其它代碼很好的分開,您可以使用 Interface Builder 建立您的使用者介面。

所有您需要的用於 Carbon 開發的工具都可以在 Xcode 裡和 ADC 網站上找到。要獲得轉換一個 Mac OS 8 或者 Mac OS 9 的應用程式到 Mac OS X 的資訊,請參考“ Carbon 移植指南”以及 ADC 網站上移植文檔裡的其它文檔。要瞭解更多有關 Xcode 應用程式和 Interface Builder 的資訊,請參考第三章“蘋果整合式開發環境”。

請注意您不能使用 Xcode 應用程式去編譯運行在 Mac OS 9 或者更早的系統裡的應用程式。如果您需要編譯和調試運行在 Mac OS 9 裡的代碼,您可以使用 MPW 和 MacsBug ,可以在這裡找到:http://developer.apple.com/macos/macos9.html 。


使用非蘋果整合式開發環境的 Macintosh 開發人員

如果您在使用 Code Warrior 或者其它非蘋果整合式開發環境為 Mac OS X 進行開發,您應該考慮轉換到 Xcode 。 Xcode 是唯一的一套開發工具保證跟隨 Mac OS 以及 Cocoa 和 Carbon API 變化的腳步。 Xcode 應用程式使用者介面提供了 Code Warrior 中絕大多數的功能,而且還有一些是 Code Warrior 所沒有的功能。 Xcode 應用程式的效能與 Code Warrior 不相上下。

要得到轉換 Code Warrior 工程到 Xcode 的提示,請參考編程主題“把 CodeWarrior 工程遷移到 Xcode ”。


工具開發人員

名詞“工具” 用於表達許多不同的東西,但是在本篇文檔中的用法,一個工具就是軟體開發人員使用的任何可以協助完成他們的工程的程式。一個工具可以是一個應用程式(也就是具有圖形化使用者介面的程式),在這種情況下工具的開發就象任何其它應用程式一樣,或者一個命令列工具。除了命令列工具不具有圖形化使用者介面以外,它的開發方式與一個應用程式是相似的。


外掛程式開發人員

外掛程式是開發人員和使用者可以添加到一個應用程式來擴充它的能力的代碼和資料模組。由於 Mac OS X 作業系統可以在需要的時候動態裝載代碼,在開發過程中把外掛程式代碼連結到主應用程式就不是必要的了;使用者只有把外掛程式放到正確的目錄裡,應用程式才能夠找到外掛程式並且在需要的時候載入它們。

如果您想要您的應用程式使用外掛程式,您必須設計一個外部 API 提供給外掛程式編寫人員使用。如果您在使用一個面對對象程式設計語言,您可以定義一個抽象基礎類或者一個方法的列表(在 Objective-C 裡被稱做是一個協議)。在一個面向進程的語言裡,例如 C ,您可以定義一套外掛程式編寫人員必須完成的函數,加上一個對於不同類型訊息註冊回呼函數的一個機制。在 Carbon 應用程式裡,您可以使用核心基礎 CFPlugIn 模糊類型來定義一個面對對象的架構使得它可以同時與 C 和 C++ 外掛程式工作。要獲得更多關於設計外掛程式的資訊,請參考“ Cocoa 資源管理文檔”裡的“動態裝載代碼”編程主題。

從開發工具角度來看,一個 Mac OS X 外掛程式是一個可裝載的包類型。要獲得更多關於包的資訊,請參考 Mac OS X 文檔裡的“系統概述”。

有幾個標準的蘋果應用程式您可以為它們編寫外掛程式。要瞭解為蘋果的程式編寫外掛程式,請參考“標準蘋果外掛程式工程”。


驅動和系統軟體開發人員

Mac OS X 提供了一個機制允許動態裝載代碼到核心,在這個過程中不需要重新編譯或者重新連結。由於任何其它修改核心的方法都需要您去建立,分發,和維護您自訂版本的 Mac OS X ,如果您想要把代碼裝載到核心裡您需要使用一個 Mac OS X 核心擴充( KEXT )。

這裡特別要指出添加代碼到核心裡是非常危險的。由於沒有一個保護系統不受錯誤碼影響的機制(保護記憶體,搶佔式多任務,虛擬記憶體管理)能夠對核心裡執行的代碼起作用,您可能會由於錯誤核心代碼引起核心混亂(也就是引起作業系統崩潰),還可能會導致硬體錯誤操作,資料丟失,以及損壞其它應用程式。絕大多數您需要實現的功能,包括許多裝置驅動程式,可以在作業系統更高層裡執行,而不是在核心裡;請參考“裝置驅動 & I/O 工具箱文檔”裡的《從應用程式訪問硬體》。要瞭解更多有關核心架構和核心代碼通常特性以及特別是 KEXT ,請參考“ Darwin & 核心作業系統文檔”裡的《核心編程》。

如果您想要編寫一個裝置驅動,您應該使用 I/O 工具箱。 I/O 工具箱是一個系統架構,庫,工具,和其它用於在 Mac OS X 裡建立裝置驅動的資源的集合。它基於一個面對對象的編程模型,是 C++ 的一個限制模式實現。要瞭解更多關於 I/O 工具箱的資訊,請參考“裝置驅動 & I/O 工具箱文檔”裡的“ I/O 工具箱基礎”。

要瞭解關於核心環境的一般資訊和編寫在核心裡執行的代碼,請訪問 ADC 網站上的“ Darwin 開發人員文檔”。

您可以使用 Xcode 開發 KEXT 和 I/O 工具箱驅動。儘管您可以使用 Xcode 應用程式編寫原始碼,並不是所有的用於調試和最佳化應用程式的工具可是用在在核心裡執行的代碼上。要瞭解 Xcode 應用程式請參考第三章“蘋果整合式開發環境”。對於用於核心層級代碼的其它工具,請參考“核心擴充”和“ I/O 工具箱驅動”。


純 Java 開發人員

純 Java 指那些編寫運行在 Java 平台獨立的環境裡的程式,包括具有圖形化使用者介面的應用程式和設計不使用使用者介面的小程式。

絕大多數標準 Java 開發工具箱( JDK )命令列工具都做為標準組成部分包含在 Mac OS X 裡了。除此之外, Xcode 還提供了很多其它 Java 特定工具和一般目的命令列工具。就象其它 Mac OS X 程式環境一樣,您可以使用 Xcode 應用程式編寫您的 Java 代碼(請參考 Java 文檔裡的“ Project Builder for Java ”)。 Jar Bundler 是一個用於把已編譯的 Java 應用程式套件組合裹做為 Mac OS X 應用程式啟動並執行一個工具。

如果您想要開發一個 網頁伺服器應用程式,您可以使用 WebObjects 加速這個過程。 WebObjects 5.2 包含了一個全套的工具和架構用於快速開發基於標準的 web 服務和 Java 伺服器應用程式。在其它的工具裡, WebObjects 包含了 EOModeler 應用程式-它可以反向工程現有的資料庫或者被用來設計新資料庫的略圖-和建立企業級 web 服務, HTML ,和 Java 應用程式的助理程式。您使用 Xcode 應用程式編譯您的 web 應用程式並且能夠使用 Interface Builder 來添加一個 Aqua 介面。除了 Xcode 應用程式和 Interface Builder 以外, WebObjects 工具和架構是一個獨立的產品,您可以從蘋果購買它。請參考 http://www.apple.com.cn/webobjects和 ADC 網站上的 WebObjects 文檔獲得更多資訊。

要瞭解 Xcode 應用程式和 Interface Builder 請參考第三章“蘋果整合式開發環境”。要瞭解其它 Java 工具,請參考“ Java ”。要察看完整的 Mac OS X Java 文檔,請訪問 ADC 網站的 Java 文檔。


方案供應商

使用 AppleScript , Perl ,和 shell 指令碼,您可以自動化涉及及格應用程式的工作流程。 AppleScript 提供了直接控制許多 Mac OS X 應用程式和 Mac OS 本身組成部分的能力。要使得一個應用程式可指令碼控制,應用程式的編寫者一定要給應用程式 AppleScript 支援。好訊息是,許多開發人員已經完成這個工作,這些應用程式套件組合括絕大多數常用的商用軟體。要瞭解更多關於 AppleScript 的資訊,請問http://www.apple.com/applescript 和 ADC 網站的 AppleScript 文檔 。

您可以使用 Script Editor (位於 /Application/AppleSctipt 目錄裡)編譯和執行標準指令碼,這些指令碼具有有限的使用者介面能力。您可以使用 AppleScript Studio 來建立具有複雜的支援 Aqua 人機介面準則的使用者介面的 AppleScript 應用程式。 AppleScript Studio 是一個技術的結合,包括 AppleScript , Cocoa , Xcode 應用程式,和 Interface Builder 。要瞭解更多有關 AppleSctipt Studio 的資訊,請訪問http://www.apple.com/applescript/studio/ 。 AppleSctipt Studio 的文檔在 ADC 網站上的 AppleScript 文檔裡。

Perl 是多個平台上的標準指令碼語言。它是開放原始碼工程並且是免費的。它可以用來執行程式或者取得一個程式的輸出,處理資料,然後把處理的資料作為另外一個程式的輸入。 Perl 可以被用於進程間通訊,用於閱讀互連網上的資訊,以及用於編寫 CGI 指令碼。 Perl 程式可以執行用 C 和其它語言編寫的模組,把它們作為 Perl 的子函數來對待。 Perl 包含在 Mac OS X 的發布版本裡。

除了 AppleScript 和 Perl ,您可以編寫 Shell 指令碼運行在終端應用程式裡。一個 Shell 指令碼就是一個 shell 命令的序列從一個檔案裡讀入而不是手動輸入。這樣您就可以編寫指令碼完成您可以在終端裡完成的任何事情;也就是說,幾乎所有 Mac OS X 可以做到的事情,包括一些 Finder 裡沒有的功能。您可以在 AppleScript 裡執行 shell 指令碼,也可以在 shell 指令碼裡執行 AppleScript 指令碼。您可以在一個 Carbon 或者 Cocoa 應用程式裡執行 AppleScript 指令碼和命令列工具。

您通過建立一個 Xcode 工程來編寫一個 AppleScript Studio 應用程式。要瞭解 Xcode 應用程式請參考第三章“蘋果整合式開發環境”。還有一些用於 Perl , AppleScript ,和終端指令碼的工具。要瞭解用於指令碼的其它工具,請參考“指令碼”。


QuickTime 開發人員

QuickTime 是一項用於操作和儲存很多不同的媒體資源包括視頻,聲音,動畫,映像,文本,音樂,以及甚至操作,儲存,和顯示 360 度虛擬現實的技術。它還允許您流媒體播放時時數位視訊或者儲存的資料流。 QuickTime 支援 Mac OS X 和 Microsoft Windows 。

使用 Cocoa 或者 Carbon 和標準應用程式開發工具(主要是 Xcode 應用程式)在一個應用程式裡增加 QuickTime 的支援相對比較容易。要瞭解更多資訊,請參考蘋果開發人員聯盟網站上的 QuickTime 資料 http://developer.apple.com/quicktime/index.html 。您還可以編寫 QuickTime 組件來擴充 QuickTime 的能力。由於 QuickTime API 是面向進程的,您應該使用 Carbon 來編寫 QuickTime 組件。請參考 ADC 網站上的QuickTime 文檔主題瞭解更多關於組件 API 的資訊。

如果您對為 QuickTime 製作內容感興趣,蘋果和第三方的工具將會有助於您。由於這些工具操作資料,而不是原始碼,它們已經超出了本篇文檔的範圍。要獲得更多資訊,請參考 QuickTime 工具網頁http://developer.apple.com/quicktime/quicktimeintro/tools/index.html 。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.