2009-02-07 54 views
2

注意:這是與大多數類似問題相反的方向!從iPhone走向Mac?

我有一個iPhone應用程序,我想在Mac上提供演示。假設我打算保持相同的屏幕尺寸,並且不用擔心讓我的應用程序看起來像「mac-like」一樣,將iPhone應用程序重新編譯(或重寫)到Mac應用程序有多困難?

是否有可能分發蘋果iPhone SDK提供的iPhone模擬器與我的應用程序的副本?要求人們自己去安裝它似乎是一個重要的要求。

回答

5

總的來說,大多數「核心」框架也存在於Mac上。作爲規則,任何啓動NS的類都將出現在桌面上 - NSString,NSArray和NSObject等。希望這意味着您的所有引擎代碼都將重新編譯並運行。

某些中間件也是如此 - 所有的iPhone Quartz都將出現 - 開始CG的類和類型...如果使用3D,桌面上有OpenGL,但它是完整的OpenGL而不是iPhone的OpenGL ES 。有一些差異,但你的代碼將很容易移植。

你肯定需要重新編碼的地方就是UI。不僅因爲AppKit不存在,而且因爲iPhone所需的UI設計通常不適用於桌面。 iPhone支持多點觸控,並且沒有(有意義的)重疊窗口。同樣,如果您使用任何iPhone的硬件,您將不得不重新實現 - 加速計和GPS顯然在桌面上不可用。在這兩種情況下,經驗法則是,開始UI的類...專屬於iPhone。

如果您在編寫應用程序時遵循Apple的MVC設計指南,如果將與引擎代碼保持良好的UI相關代碼並且移植應該更容易。

4

首先,你不能分發iPhone模擬器。這是不可能的。 iPhone SDK協議規定:

您同意不對全部或部分的任何網站或服務器進行租用,出租,借出,上傳或託管,出售,再分發或再許可,或者啓用別人這樣做。

您可能能夠在Mac版本中使用您的程序的某些部分,但您可能必須重寫與UI相關的代碼。

2

如果你的應用程序主要是OpenGL或自定義視圖,可能不會太難。如果你的應用使用了大量的UIKit視圖,那麼你需要重寫一下,才能使用Mac標準的Cocoa視圖。他們完全不同。