原文地址:[http://blog.frontendforce.com/2010/05/mobile-application-development-using-javascript/](http://blog.frontendforce.com/2010/05/mobile-application-development-using-javascript/)
譯者:蔣宇捷
?Javascript并不僅僅只用于網頁和網站程序。你還可以創建實時應用、服務端解決方案、桌面和移動應用。移動應用分為兩種:瀏覽器里的網頁應用和本地應用。本地應用通常更快更強大,因為它們有訪問文件系統、傳感器、照相機等設備的權限。本地應用通常使用手機指定的語言編寫,例如Objective-C、Java。所以獨立開發者通常使用HTML+CSS+Javascript的解決方案。幸運的是,感謝最新的技術,我們可以很方便的將網頁應用轉換為真正的本地應用。
**[Titanium?Appcelerator](http://www.appcelerator.com/)**
****
?視頻([http://vimeo.com/moogaloop.swf?clip_id=8730218&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=&fullscreen=1](http://vimeo.com/moogaloop.swf?clip_id=8730218&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=&fullscreen=1))
?這個恐怖的工具允許你使用所知道的網頁技術通過本地控制為iPhone、iPad、Android(稍后將支持黑莓)創建強大的移動應用。這些技術包括HTML5、CSS3、Javascript、PHP、Ruby和Python。此外,它最近還更新了文檔。
?你可以使用任何一個你想用的框架(例如Mootools、jQuery、Prototype)并利用上CSS3和Javascript的最新特性。這是因為Titanium程序實際上運行在聰明的嵌入式Webkit(即Safari)窗口中。從Titanium 1.0版本開始,除Webkit Webview外只有Javascript模擬器。像[米切爾所寫的一樣](http://css.dzone.com/articles/titanium-10-native-web-apps):
?在Titanium 0.8版本中,Webkit的Webview被當作核心使用,周圍是GPS、用戶界面、相機和映射到操作系統的數據。而到了Titanium 1.0版本,開發者現在可以選擇通過直接綁定到操作系統的API為iPhone上的Objective-C或者Android上的Java建立Javascipt橋。
?如果你學習了[Titanium手機API](http://developer.appcelerator.com/apidoc/mobile/latest),你會發現它使用地理定位或者鼠標手勢是多么的簡單。你甚至還可以僅僅通過簡單的幾行代碼,就可以把你的[應用連接到Facebook](https://developer.appcelerator.com/apidoc/mobile/1.3/Titanium.Facebook-module)。
**[PhoneGap](http://www.appcelerator.com/)**

????? 就像Titanium一樣,Phone Gap讓你可以使用HTML和Javascript來為多個手機平臺構建應用,包括iPhone、Google的Android、塞班、Palm和黑莓。你可以在[這里](http://wiki.phonegap.com/Roadmap)看看上面提到的這些平臺目前支持哪些特性。
????? 坦白的說,我只用過Titanium,但是PhoneGap看起來也是一個很好的選擇。
????? 另外還有[QuickConnectFamily](http://www.quickconnectfamily.org/)和[NibleKit](http://www.nimblekit.com/)。第一個相當強大,第二個缺乏文檔同時不支持跨平臺(只支持iPhone和iPod)。我還推薦[iWebkit](http://iwebkit.net/),但是它的主頁最近被黑了(我沒有開玩笑…)。
????? 你可能會對讓你工作更容易的框架感興趣。例如,如果你希望你的應用有特別的iPhone界面和外觀,可以試試:
**[jQTouch](http://www.jqtouch.com/)**

????? 它可以使你輕松創建Webkit瀏覽器上運行的iPhone應用(還可以再使用Titanium 或PhoneGap 來創建本地應用)。
????? 除jQTouch之外還有一個選擇:IUI。你可以在[Google代碼](http://code.google.com/p/iui/)里找到它。
????? 如果你要選擇一個輕量級和非jQuery的框架,可以試試[WebApp](http://webapp-net.com/),它被設計來模擬iPhone和iPod Touch真實的用戶圖形界面。
**[XUI](http://xuijs.com/)**

????? 我們聽到了你的話。另外一個Javascript框架是什么?!當使用PhoneGap開發時,使用現代的Javascript(例如Prototype、MooTools、YUI、Ext、甚至jQuery),會導致加載時間變慢。一個最大的原因是這些庫太大,主要是它們包含了大量跨瀏覽器兼容性代碼。到目前為止,手機平臺上瀏覽器實現和不同的需求很少,所以請考慮XUI。
????? 我已經說得夠多了…
**[Cappuccino](http://cappuccino.org/)**

????? 這個框架為非Objective-C開發者設計,Capucchino引入了Objective-J。
????? Objective-J是一個基于Objective-C的新式編程語言。它同時是Javascript的一個超集,這代表著任何有效的Javascript代碼也是可用的Objective-J代碼。任何熟悉Javascript和面向對象原理的人,學習Objective-J不會有任何困難。熟悉Objective-C會有一些幫助,但不是必須的。
????? 使用這個框架可以創建和桌面應用一樣棒的手機應用(這要感謝Titanium)。可以看看一些示例:[280 slides](http://280slides.com/),[Mockingbird](http://gomockingbird.com/)或者[Github問題](http://githubissues.heroku.com/)。
**[iProcessing](http://luckybite.com/iprocessing/)**
****
????? 使用上面的框架你可能無法創建3D應用和游戲。所以有了iProcessing。它是一個開放的編程框架,幫助人們使用Processing語言開發本地iPhone應用。它是Processing.js庫和iPhone上Javascript應用框架的結合。
????? 視頻([http://www.youtube.com/v/tENliJSMEB8&rel=0&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1](http://www.youtube.com/v/tENliJSMEB8&rel=0&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1))
? ??你還知道另外值得提到的框架?請給我回復。
- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案