|
序號 分類 名稱開發(fā)語言特點備注 1 WEB SproutCoreHTML+JS+CSS純JavaScript框架 2 WEB CappuccinoObject-JJavaScript 超集 3 WEB jQTouchHTML+JS+CSS在iPhone最好非框架 4 WEB jQuery MobileHTML+JS+CSS兼容主要手機平臺 5 WEB The M ProjectHTML5+NodeJS基于jQuery Mobile支持離線使用 6 WEB Sencha TouchHTML5純JavaScript框架 7 WEB iPFacesHTML+JS+CSS基于表單的應(yīng)用 8 Native/WEB PhoneGap HTML+JS+CSS提供了操作手機功能的接口 9 Native/WEB Appcelerator Titanium Python 或者 Ruby類似PhoneGap 10 Native Mosync C 一次編程, 可編譯成對應(yīng)平臺的運行程序 11 Native Mono for Android Mono touch for iOS C# 和.Net在不同平臺上共享數(shù)據(jù)結(jié)構(gòu)和非UI代碼。Xamarin 收費軟件 如果需要使用手機上的設(shè)備,并且希望使用一種語言編寫一次代碼就可以運行在多種平臺上的話,推薦使用 Mosync,但是對中文的支持還不穩(wěn)定。另外,因為編譯后以客戶端程序方式運行,運行效率比WEB方式要高一些。 如果從快速部署到多種平臺的角度,可以使用PhoneGap,框架已經(jīng)提供可以運行在各個平臺上的程序主體,一般只需要編寫好網(wǎng)頁外觀和腳本,然后在各個平臺IDE下做好相應(yīng)的配置即可??蚣鼙旧硖峁┝艘恍┍热鏕PS,呼叫電話等等手機功能接口,但是,如果在應(yīng)用中需要使用框架沒有提供的手機功能時,需要自己編寫相應(yīng)的調(diào)用接口的實現(xiàn)。 如果應(yīng)用不需要使用手機上的設(shè)備的話,使用The M Project,jQuery Mobile等等JavaScript框架,不用開發(fā)客戶端程序??梢钥焖俨渴鸷蜕?。如果希望WEB應(yīng)用程序離線后仍能夠使用,考慮使用支持HTML5的手機瀏覽器。 The M Project 吸收了SproutCore 的思想(MVC框架),提供了一套以jQuery Mobile為基礎(chǔ)的UI和核心的文件, 既可以運行于Node.js這樣的JavaScript服務(wù)器上,也可以運行在Apache等普通的WEB服務(wù)器上。 一 SproutCore SproutCore 是一個 web 應(yīng)用程序框架,主要是為一個特定的設(shè)備開發(fā)類似于本地應(yīng)用程序的 web 應(yīng)用程序。 是一個純 JavaScript 框架,沒有服務(wù)器端組件和較小的 HTML 和 CSS。任何 web 服務(wù)器都可以運行它。 SproutCore 是 web 應(yīng)用程序的第一個也是最重要的一個 Model-View-Controller (MVC) 框架。而 SproutCore 是一個純客戶端框架,M、V 和 C 都是駐留在客戶端的。這實際上是 MVC 運行一個更自然的方式;事實上,大多數(shù)桌面操作系統(tǒng)提供類似的 MVC 框架已經(jīng)十幾年了。 參考資料: 1. 用 SproutCore 構(gòu)建移動應(yīng)用程序:http://www.ibm.com/developerworks/cn/web/wa-mobilewebapp/index.html?ca=drs- 2. 官方文檔:http://www./documentation 二 Cappuccino Cappuccino引入了自己的編程語言 Objective-J,它非常類似于 Objective-C。因此,預(yù)先了解 Objective-C(或者它起源的語言 C 和 Smalltalk)將有助于簡化 Objective-J 學習過程。由于是純客戶端框架,Cappuccino 不需要服務(wù)器端組件。 Cappuccino 應(yīng)用程序只需要一個基本 web 服務(wù)器。 Objective-J 是一個 JavaScript 超集。它將 Objective-C 在 C 上添加的大部分語法添加到 JavaScript。Objective-C 程序員有時不得不使用 C,但通常只是為了執(zhí)行低級任務(wù)或使用一個 C 庫。這種情況對 Objective-J 程序員同樣適用。通過將 Objective-C 語法帶到 JavaScript,從而帶到瀏覽器,Cappuccino 使得將大部分 Cocoa 框架移植到 web 成為可能。 參考資料: 1. 為移動 web 應(yīng)用程序開發(fā)而探索 Cappuccino :http://www.ibm.com/developerworks/cn/web/wa-cappuccinowebapp/index.html?ca=drs- 2. 官方站點: http:///learn/ 三 jQTouch jQTouch — 一個基于 jQuery 的 web 框架,專為移動 web 開發(fā)而設(shè)計的。 jQTouch 之所以受歡迎是因為它構(gòu)建于 jQuery 之上。從技術(shù)上來說它是一個 jQuery 插件,添加特定移動功能和樣式到應(yīng)用程序。具體來說,它添加樣式和可視效果,旨在利用 iPhone 的功能優(yōu)勢。盡管它的很多特性在其他移動設(shè)備上也能很好地工作,jQTouch 設(shè)計時無疑參考了 iPhone。 jQTouch 不像其他架構(gòu)那樣試圖提取出工作流。相反地,它依賴功能強大的 jQuery 工具使得表單處理、Ajax、頁面轉(zhuǎn)換這類任務(wù)變得更為容易。如果您是一名經(jīng)驗豐富的、且習慣于使用 web 應(yīng)用程序的 web 開發(fā)人員 — 使用 web 功能強大的 HTML、JavaScript 和 CSS 組合— 那么,jQTouch 也會非常適合您。您可以快速生成具有吸引力、易于使用的移動 web 應(yīng)用程序。然而,如果您想采用一個更結(jié)構(gòu)化的方法,那么您將不得不自己添加結(jié)構(gòu)。這極大地改變了通常由一個開發(fā)團隊來處理的巨大且復(fù)雜的應(yīng)用程序。此外,jQTouch 不改變創(chuàng)建 web 應(yīng)用程序所涉及到的標準工作流 — 它只是試圖讓每個工作流步驟更容易。其他框架進一步提取大量步驟,并使用較少的樣板文件提供一個更有邏輯的工作流。 參考資料: 1. 使用 jQTouch 增強您的下一個移動 web 應(yīng)用程序 http://www.ibm.com/developerworks/cn/web/wa-jqtouch/index.html?ca=drs- 2. 官方網(wǎng)站: http:/// 四 jQuery Mobile jQuery Mobile 應(yīng)用程序的設(shè)計目的是在 Androids 和 iPhones以及其他平臺上都能良好運行。它不僅僅是一個 jQuery 插件;相反地,它從根本上是為移動電話構(gòu)建的,轉(zhuǎn)換成更簡潔、更靈活的代碼:jQTouch 有 69 KB 的 JavaScript 和 8KB 的 CSS,而 jQuery Mobile 只有 12KB 的 JavaScript 和 6KB 的 CSS。 參考資料: 1. 官方網(wǎng)站: http:/// 五 The M Project The-M-Project是一個強大的JavaScript框架,它利用HTML5新的特性來更好和更簡便地開發(fā)移動應(yīng)用。 這個框架遵循著名的MVC軟件架構(gòu)模式。 它還支持離線,所以你的用戶可以在沒有連接網(wǎng)絡(luò)的情況下繼續(xù)操作(當下次有連線的時候,再將數(shù)據(jù)同步到服務(wù)器中)。它提供了優(yōu)秀的文檔(這個項目擁有一個引導(dǎo)新用戶入門的開發(fā)指南)。 支持多數(shù)手機平臺,包括 iOS, Android, Palm webOS, 和 Blackberry OS。 參考資料: 1. 官方網(wǎng)站: http://www./ 六 Sencha Touch Sencha Touch 來自于大名鼎鼎的JS框架Ext JS。它整合了Ext JS和 JQTouch。目前Ext JS 已經(jīng)更名為Sencha。 Sencha Touch可以讓你的Web App看起來像Native App。美麗的用戶界面組件和豐富的數(shù)據(jù)管理,全部基于最新的HTML5和CSS3的 WEB標準,全面兼容Android和Apple iOS設(shè)備。 它提供了強大的數(shù)據(jù)包,通過Ajax、JSON、YQL等方式綁定到組件模板,寫入本地離線存儲。 參考資料: 1. 使用 Sencha Touch 開發(fā)超炫的跨平臺移動 Web 應(yīng)用: http://www.ibm.com/developerworks/cn/web/1108_husha_senchatouch/index.html?ca=drs 2. -中文站:http:///taxonomy/term/261 3. 官方網(wǎng)站:http:/// 七 iPFaces iPfaces 是一個用來開發(fā)手機設(shè)備上基于表單的網(wǎng)絡(luò)應(yīng)用程序的框架。開發(fā)者可以不關(guān)心具體底層的手機是什么平臺。幾乎支持所有主流的服務(wù)平臺,如Java, PHP 和ASP.NET。 iPfaces有2個版本:社區(qū)版和商業(yè)版。其中社區(qū)版基于GNU General 3許可,可供免費下載。商業(yè)版本提供更多的專業(yè)支持,培訓和咨詢服務(wù)。 參考資料: 1. 官方網(wǎng)站: http://www./ 八 PhoneGap PhoneGap是一款開源的手機應(yīng)用開發(fā)平臺,它僅僅只用HTML和JavaScript語言就可以制作出能在多個移動設(shè)備上運行的應(yīng)用。PhoneGap將移動設(shè)備本身提供的復(fù)雜的API進行了抽象和簡化,提供了一系列豐富的API供開發(fā)者調(diào)用,只要你會HTML和Javascript或者Java語言,就可以利用PhoneGap提供的API去調(diào)用各種功能,PhoneGap就能讓你可以制作出在各種手機平臺上運行的應(yīng)用,這對移動應(yīng)用開發(fā)者來說無疑是個福音。 這個對Symbian的支持也很不好,官方的Symbian demo在N95上無法跑。 QQ郵箱的客戶端版本,是使用PhoneGap作為基礎(chǔ)開發(fā)的。 參考資料 1. 搭建基于 PhoneGap 框架的 Mobile 應(yīng)用 http://www.ibm.com/developerworks/cn/web/1108_rendy_phonegap/index.html 2. 官方網(wǎng)站: http://www./ 九 Appcelerator Titanium Appcelerator是一個構(gòu)建基于SOA的RIA應(yīng)用的全集成平臺,用來構(gòu)建富應(yīng)用、交互式的網(wǎng)站和應(yīng)用程序。它是開源的。 Appcelerator基于已存在的WEB標準為Java, Ruby, PHP, Python 和 .NET等提供基于消息的集成RIA和SOA整合點. Appcelerator內(nèi)建有user interface widget,可以作為對HTML, CSS and Javascript的補充,使開發(fā)者迅速集成進RIA常用組建而不必寫Javascript或者服務(wù)器端代碼。 Appcelerator的Titanium平臺,主要用來進行智能手機和平板電腦跨平臺應(yīng)用的開發(fā)。 類似于PhoneGap,它也可以直接調(diào)用iPhone和Android手機的設(shè)備能力。 參考資料: 1. 官方網(wǎng)站:http://www./ 十 Mosync MoSync是一個開源的C/C++的集成開發(fā)環(huán)境??梢院喕苿娱_發(fā)程序的開發(fā)難度,并且能夠大大提高移動程序開發(fā)人員的工作效率。其主要優(yōu)點:開源,跨平臺(android,j2me,symbian,mobile等),易于移植。 采用C,開發(fā)速度優(yōu)勢及易用性明顯不如android及j2me,而對于它宣稱的可以轉(zhuǎn)換為android,j2me程序,相應(yīng)的過程比較有意思:采用了eclispe做為開發(fā)IDE基礎(chǔ),用其編譯C,再使用編譯器改寫成java程序, 對中文的支持性很糟糕。MoSync所提供的UI系統(tǒng)壓根沒考慮對中文的支持,有國人問如何顯示中文,MoSync的回復(fù)讓我感到很雷,要制作一個一個byte的中文字符字體。不過MoSync正在做native ui的相關(guān)工作,恐怕還需要相當長的時間來發(fā)展。 參考資料: 1. 官方文檔: http://www./documentation/manualpage/what-mosync 十一 mono Project Mono 是一個幫助開發(fā)者開發(fā)跨平臺應(yīng)用程序的軟件平臺。Mono本身是一個微軟的.NET Framework 的開源實現(xiàn)。這個項目時由xamarin來贊助的。Mono for iOS 和Mono for Android分別是兩個開發(fā)環(huán)境,它們都使用了C#、mono 框架、VS和MonoDevelop來開發(fā)應(yīng)用程序。這兩個開發(fā)環(huán)境既有收費版,也有社區(qū)版。 使用這個工具集,可以實現(xiàn)在iOS和Android之間共享數(shù)據(jù)結(jié)構(gòu)和非用戶界面的代碼。換句話說,在開發(fā)應(yīng)用程序時,除了用戶界面需要單獨為兩個平臺分別開發(fā)外,業(yè)務(wù)邏輯部分的代碼是可以共用的。 開發(fā)的基本流程是,編碼、生成資源(指應(yīng)用程序中用到的圖片、字符串、布局文件等)、編譯、包裝成對應(yīng)平臺可用的二進制包。 Mono for Android提供的只是讓你可以用C#代碼編寫Android應(yīng)用。 Mono for Android提供了一個可以免費下載的版本,但只能在模擬器中使用。要想在真實環(huán)境中使用,需要購買商業(yè)許可。 參考資料: 1. 官方文檔: http://docs./ 2. Mono Project : http://www./Main_Page |
|
|