#osxchat blog

2004/10/24

OpenVanilla:新的輸入法開發架構

作者: zonble

lukhnos 經常讓人驚喜。

昨天晚上在他花了一個晚上時間的努力與實驗下, OpenVanilla 這個新的輸入法框架(framework)的輪廓,已經大致成形。我就我所看到的,大致描述如下。

lukhnos在完成了香草輸入法0.64版之後,接下來所進行的工作,先是進行了 CarbonInputMethod 計畫,CarbonInputMethod計畫是目前的 OpenVanilla 最早的雛型。

CarbonInputMethod的內容是重新整理蘋果發展者網站(Apple Developer Connection)所提供的輸入法設計範例— BIM(Basic Input Method) ,原因是目前各種在OSX平台上可以看到的、開放原始碼的輸入法如香草輸入法、SpaceChewing 酷音輸入法,以及日文輸入法 MacUIM 等等,都是使用BIM為基礎開發。而BIM的寫作本身有些混亂,且本身帶有許多OS9殘留的痕跡,多使用比較老舊的API,但其實蘋果提供了許多新的API可以使用,lukhnos 的目標,首先是整理出一份精簡的、簡潔的、而且比較符合新的環境的輸入法設計範例。

在整理 CarbonInputMethod 到了一個程度之後,lukhnos則在原有的基礎上,進行 OpenVanilla 計畫。 OpenVanilla 的目的是,成為一個輸入法核心與 OSX 連接的通用介面,包括可以動態載入 Dynamic Library(.dylib) 檔案,將各種輸入法以 dylib 方式載入,以及所有輸入法的共通介面,如選字視窗、按鍵處理、資料的傳入與送出等等。

之後,程式設計者如果想要在OSX上開發輸入法,如果是透過 OpenVanilla 框架,就只要將輸入法核心寫成符合一定規範的 dylib 檔案即可。設計者不用將心力放在處理OSX的介面問題上,只需要專心在輸入法本身,也就是,在之前有許多個別的輸入法計畫,都必須自己處理許多 Carbon API 方面的問題,而 OpenVanilla 就是負責將 Carbon API 的問題處理完成,並且將這些之前的計畫,納入在一個簡單的框架之下。

比方說,未來在OSX上的酷音輸入法,也不用成為獨立的分支,而可以將「新酷音」(Qooing)計畫中,抽離原本酷音輸入而獨立的 libchewing ,直接應用在 OSX 平台上,而不用像之前 SpaceChewing 計畫那樣,在 0.6 到 0.7 版之間,處理那麼多 Carbon API 方面的問題(當然,那時候的常識,也累積了現在的許多經驗,以及對於 OSX 程式設計環境的熟悉)。可以讓 SpaceChewing 與新酷音共同維護一個輸入法核心即可,避免過去開發人力分散的狀況,在今天下午,gugod就已經順利的將 OpenVanilla 與 libchewing 連接成功了。

在使用者介面方面,OpenVanilla 會是在 OSX 系統偏好設定當中的一種輸入法。如果您還是想要將輸入法寫成 component 的 bundle 的話,那麼,CarbonInputMethod 也可以給您相當大的幫助。

在此之前,#osxchat 頻道的朋友曾經發起一個類似的計畫:XCINIX,企圖將 xcin 改寫成 OSX 的 component,將xcin下的各種輸入法移植到 OSX 平台上, OpenVanilla 也是在做一件類似的事情,不過,採取的是比較不一樣的方法。而現在看起來, OpenVanilla 所採用的方式,似乎更好。

目前這幾個計畫,都在中研院資訊所的 OpenFoundry 系統上進行,如果您熟悉 XCode 開發工具以及 SVN 的話,您都可以取得上述計畫的程式碼,直接瞭解這幾個計畫目前的進度。

CarbonInputMethod:
http://svn.openfoundry.org/carbonim/

OpenVanilla:
http://svn.openfoundry.org/openvanilla/

標籤: , ,

2 篇留言:

張貼留言

? 回前頁