Javascript并不僅僅只用于網(wǎng)頁和網(wǎng)站程序。你還可以創(chuàng)建實時應(yīng)用、服務(wù)端解決方案、桌面和移動應(yīng)用。移動應(yīng)用分為兩種:瀏覽器里的網(wǎng)頁應(yīng)用和本地應(yīng)用。本地應(yīng)用通常更快更強大,因為它們有訪問文件系統(tǒng)、傳感器、照相機等設(shè)備的權(quán)限。本地應(yīng)用通常使用手機指定的語言編寫,例如Objective-C、Java。所以獨立開發(fā)者通常使用HTML+CSS+Javascript的解決方案。幸運的是,感謝最新的技術(shù),我們可以很方便的將網(wǎng)頁應(yīng)用轉(zhuǎn)換為真正的本地應(yīng)用。
這個恐怖的工具允許你使用所知道的網(wǎng)頁技術(shù)通過本地控制為iPhone、iPad、Android(稍后將支持黑莓)創(chuàng)建強大的移動應(yīng)用。這些技術(shù)包括HTML5、CSS3、Javascript、PHP、Ruby和Python。此外,它最近還更新了文檔。
你可以使用任何一個你想用的框架(例如Mootools、jQuery、Prototype)并利用上CSS3和Javascript的最新特性。這是因為Titanium程序?qū)嶋H上運行在聰明的嵌入式Webkit(即Safari)窗口中。從Titanium 1.0版本開始,除Webkit Webview外只有Javascript模擬器。像米切爾所寫的一樣:
在Titanium 0.8版本中,Webkit的Webview被當(dāng)作核心使用,周圍是GPS、用戶界面、相機和映射到操作系統(tǒng)的數(shù)據(jù)。而到了Titanium 1.0版本,開發(fā)者現(xiàn)在可以選擇通過直接綁定到操作系統(tǒng)的API為iPhone上的Objective-C或者Android上的Java建立Javascipt橋。
如果你學(xué)習(xí)了Titanium手機API,你會發(fā)現(xiàn)它使用地理定位或者鼠標(biāo)手勢是多么的簡單。你甚至還可以僅僅通過簡單的幾行代碼,就可以把你的應(yīng)用連接到Facebook。
PhoneGap
就像Titanium一樣,Phone Gap讓你可以使用HTML和Javascript來為多個手機平臺構(gòu)建應(yīng)用,包括iPhone、Google的Android、塞班、Palm和黑莓。你可以在這里看看上面提到的這些平臺目前支持哪些特性。
坦白的說,我只用過Titanium,但是PhoneGap看起來也是一個很好的選擇。
另外還有QuickConnectFamily和NibleKit。第一個相當(dāng)強大,第二個缺乏文檔同時不支持跨平臺(只支持iPhone和iPod)。我還推薦iWebkit,但是它的主頁最近被黑了(我沒有開玩笑…)。
你可能會對讓你工作更容易的框架感興趣。例如,如果你希望你的應(yīng)用有特別的iPhone界面和外觀,可以試試:
jQTouch
它可以使你輕松創(chuàng)建Webkit瀏覽器上運行的iPhone應(yīng)用(還可以再使用Titanium 或PhoneGap 來創(chuàng)建本地應(yīng)用)。
除jQTouch之外還有一個選擇:IUI。你可以在Google代碼里找到它。
如果你要選擇一個輕量級和非jQuery的框架,可以試試WebApp,它被設(shè)計來模擬iPhone和iPod Touch真實的用戶圖形界面。
XUI
我們聽到了你的話。另外一個Javascript框架是什么?!當(dāng)使用PhoneGap開發(fā)時,使用現(xiàn)代的Javascript(例如Prototype、MooTools、YUI、Ext、甚至jQuery),會導(dǎo)致加載時間變慢。一個最大的原因是這些庫太大,主要是它們包含了大量跨瀏覽器兼容性代碼。到目前為止,手機平臺上瀏覽器實現(xiàn)和不同的需求很少,所以請考慮XUI。
我已經(jīng)說得夠多了…
Cappuccino
這個框架為非Objective-C開發(fā)者設(shè)計,Capucchino引入了Objective-J。
Objective-J是一個基于Objective-C的新式編程語言。它同時是Javascript的一個超集,這代表著任何有效的Javascript代碼也是可用的Objective-J代碼。任何熟悉Javascript和面向?qū)ο笤淼娜,學(xué)習(xí)Objective-J不會有任何困難。熟悉Objective-C會有一些幫助,但不是必須的。
使用這個框架可以創(chuàng)建和桌面應(yīng)用一樣棒的手機應(yīng)用(這要感謝Titanium)?梢钥纯匆恍┦纠280 slides,Mockingbird或者Github問題。
iProcessing
使用上面的框架你可能無法創(chuàng)建3D應(yīng)用和游戲。所以有了iProcessing。它是一個開放的編程框架,幫助人們使用Processing語言開發(fā)本地iPhone應(yīng)用。它是Processing.js庫和iPhone上Javascript應(yīng)用框架的結(jié)合。