2010 年 6 月 27 日

Cocotron

每當你告訴人家你做了一個 Mac 軟體,得到的第一個反應通常是些客套話,告訴你這套軟體看起來似乎很不錯,接下來的反應就是-什麼時候會推出 Windows 版本;請注意,問題不是「會不會推出」,而是「什麼時候推出」Windows 版本。有天就心血來潮,把 >Cocotron 裝起來玩玩看;Cocoatron 網站上面說,只要裝了這個東西,就可以直接把 Xcode project 編譯成 win32 或是 Linux 上面可以執行的 binary,姑且把手上一些程式丟進去試一試,嗯,果然編不起來。

Cocotron 的安裝說明還頂不清楚。首先,你會去網站上的下載頁面下載一個安裝套件,可是光裝完這個套件還不夠-安裝套件會幫你裝好一套可以將 Objective C 語言編譯成其他平台 binary 的 gcc。

接下來,你得要用 svn 把 cocotron 的程式碼 checkout 出來,編出可以讓你的 win32 或 Linux binary 去 link 的 framework,cocotron 自己實作了 Cocoa 的幾套 framework,像是 Foundation 與 AppKit 等,不知道 Cocotron 的實作是不是跟 GNUStep 有關係。接著,你還要改一下 Xcode project 的設定,把 compiler 換成 Cocotron 的,把 Framework 路徑改成 Cocotron 的,最後,嗯,還是編不起來。

問題出在 Framework 的支援程度。今天任何一套在 Mac 上面透過 Cocoa 開發出來的應用程式,都不太可能只用到 Foundation 與 AppKit,還有目前 Cocotron 已經實作其他的 Framework而已。

這年頭桌面軟體與網路應用可說交纏在一起,像 Twitter 明明是網頁服務,但使用者還是覺得在桌面上有套 Tweeite 會比較好用,而你做桌面軟體的時候,要呈現一份說明文件、版本記錄,又還是開一個瀏覽器開 HTML 好用,Cocoa 裡頭最複雜的 UI 元件莫過於 WebKit,可是 Cocotron 還不支援。你想要處理音訊,會需要 CoreAudio,想要播放影片,會用到 QuickTime,Cocotron 也都還沒有這些玩意。按下 build 按鈕之後,Xcode 只會給一排又一排的紅字。

所以呢,想要做到跨平台的東西,大概還是得要把跟平台相依的部份給切割出來,只有那些與平台功能無關的部份可能跨平台,至於相依的部份,還是得要在每個平台上個別寫一次。而想要執行順暢,還是得要針對平台做最佳化,想要有好的使用者體驗,還是要使用平台所提供的使用者介面。想要一套程式什麼平台都可以通吃,以現在每個平台所提供的基礎與工具,怎麼看,都只能是肖想。

Be Sociable, Share!


2 項留言回應 »

其實一直很好奇, 因為在 Apple iTunes, Safari for Windows 通常可以找到 WebKit, Foundation, AppKit, CoreGraphics, etc 的 framework library DLL.
如果拿 GNU Obj-C for Cygwin/MinG W和 Mac Xcode 的 header file, 再用 implib 把 DLL 輸出 .lib 可以供 dynamic linking, 如此是不是大概就可以直接弄出 XXX.app for Windows.

1. 來自 jclin 的 迴響留言 — 2010 年 6 月 27 日 @ 6:59 上午

問題是,你也不知道蘋果在 windows 上面用的那些 Framework,到底是怎麼編出來的。

2. 來自 zonble 的 迴響留言 — 2010 年 6 月 27 日 @ 8:12 下午

留言回應

顯示

XHTML: 您可以使用的 HTML 語法如下: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

要轉貼的話就不必問我可不可以轉貼了,反正就算我說不可以你一樣還是會轉貼。不過請告訴我您貼到了什麼地方去。

請不要叫我做問卷,謝謝。

Facebook

Powered by WordPress 3.3.2, ideas and cares.

Weizhong Yang (a.k.a zonble)

Email:

Email:

AIM: zonble@mac.com