寫在前面:html
由於移動市場的盛行帶動了移動社交、移動購物、手遊、智能化硬件等多個新興領域。智能終端硬件水平愈來愈高,運行其上的web瀏覽器能力也愈來愈強,加上HTML5\JS\CSS的蓬勃發展,Web已經可以展示出很是不錯的體驗。可是單純瀏覽器中的web仍是不能代替本地原生應用,由於通用瀏覽器還不能方便地調用移動設備的本地資源例如硬件設備、本地文件。後來就有人想到了,爲啥不能本身作一個可讓web方便訪問本地資源的專用瀏覽器呢?這就有了如今移動Web應用開發套件了。這裏面涉及兩個東西:jquery
1.運行框架:上面說的專門的瀏覽器,其實也能夠理解爲一個跑JS\HTML5\CSS的虛擬機。咱們寫的web代碼能夠在虛擬機上運行,而且這個虛擬機定義了經過JS\HTML5\CSS來訪問智能終端本地資源的API。若是把這個虛擬機與web代碼合併打包併發布,就能夠生產一個原生應用了。ios
2.UI框架:HTML5\JS\CSS組合的UI框架。單純JS\HTML5\CSS若是本身寫漂亮的UI仍是很費力的,你得定義不少CSS,製做不少素材圖片。其實普通web已經有了一些js庫或者叫框架,如:EXTJS、JQuery等。。。那麼移動端有嗎?有的!最出名的例如JQuery Mobile。web
可是,在web領域,不少項目都是開源的,因此思路一通以後,好多相似的項目涌現出來。那筆者如今就來總結一些,市面上看上去比較火,或者商家不停炒做的一些開發套件吧。數據庫
閱讀前的約定:筆者暫且將運行Web代碼的虛擬機或者將web代碼可以部署到智能終端的開發套件爲,運行框架。將用於移動Web應用開發的JS/HTML5/JS開發框架,UI框架。apache
1.官方網站:http://www.phonegap.com/api
2.性質:運行框架,幾乎全兼容瀏覽器
3.說明:這應該是移動Web應用的先行者之一了。原來是一個小公司開發的框架,其當時出來的目的是爲了跨平臺,緣由是當時的智能終端有着百花齊放的狀態(有興趣能夠讀筆者另外一篇博文講得當年N個移動操做系統的)。若是應用開發者想在那麼多平臺上都開發原生應用,是一件很是苦逼的事情。當時的這個框架的做者就是想到爲啥不能用web開發應用呢。就有了最初的PhoneGap,後來這個公司被Adobe公司收購了,可見其前景很高。Adobe將PhoneGap核心代碼提煉出來,貢獻於Apache,取名 cordova。而PhoneGap用於Adobe本身的商業項目提供一一些增值服務,例如,在Dreamweaver編寫基於phonegap的webapp代碼而後直接在DW上PhoneGapBuilder服務,在Adobe的雲端本身幫你把代碼封裝成移動平臺的原生安裝包。服務器
4.受權:Cordava是徹底開源的基於apache開源許可協議下,而PhoneGap就是商業版本的了。微信
1.官方網站:https://www.sencha.com/
2.性質:UI框架
3.說明:這個是大名鼎鼎的ExtJs的移動版。最新的版本可能將 移動版與標準版合併。代碼大而全,屬於重量級UI庫。ExtJs這個項目源頭也頗有意思,原來只是YahooMail的一個JS UI庫,後來做者在其基礎上擴展並最終造成了如今ExtJs,一個很是龐大的JS UI庫。由於這個是UI庫,因此你能夠將其應用於普通移動Web上,也會給你的網頁增色不少。
4.受權:sencha的受權有商業有開源,若是直接用他的js庫基本是不收錢的,可是若是你想要用他的開發套件例如所見即所得的UI繪製套件就須要收費了。
1.官方網站:http://jquerymobile.com/
2.性質:UI框架
3.說明:這個大名鼎鼎的JQuery的移動版本。跟JQuery同樣是一個輕量級的JS庫,同樣使用HTML5+CSS+JS的技術。應爲輕量級,因此在web加載時比Sencha有一點優點。缺點顯而易見,UI控件太少了。由於JQuery Mobile 太普及了,也有不少第三方的擴展控件庫例如JQuery Mobile Touch。比較有意思的是Sencha Touch 也融合了JQuery Mobile Touch。
4.受權:徹底開源,放心使用
1.官方網站:http://www.appcelerator.com/
2.性質:運行框架
3.說明:這個框架其實並不能徹底是基於Web形式的框架,緣由剛開始它主要目的有點相似Node.js就是以JS爲主要開發語言,支持HTML5的UI,程序自動封裝爲JS。最終框架把JS代碼翻譯爲原生代碼可以執行的代碼。甚至JS代碼能夠直接調用原生ObjectC,後來適應潮流,Titanium在後續版本中陸續增長對於Web特性的支持,讓其愈來愈像PhoneGap了。
4.受權:基本的使用時不要錢的,可是要使用SDK裏面的高級功能,還有官方的開發套件都是要錢的哦
1.官方網站:http://dcloud.io/
2.性質:運行框架+UI框架
3.說明:這個DCloud,使用的運行框架的標準叫HTML5+是這個公司本身助推的標準,而對應的運行框架叫HTML5+runtime。另外還提供一個UI框架叫MUI。另外該公司還發布了針對HTML5+\MUI的Web開發套件HBuilder(筆者有一篇簡單介紹詞IDE的文章)。這個HBuilder確實是一個亮點,能夠一個很不錯的Web Js 編碼環境,語法高亮提示、代碼導航等很不錯。算上一個比較有良心的國產JS開發環境了。雖然我尚未用HTML5+跟MUI,可是光Hbuilder這一個產品就令我對其大有好感。
4.受權:目前全部項目都是開源的,隨便用。
1.官方網站:http://wex5.com/cn/wex5/
2.性質:UI框架 基於PhoneGap,集成本身的前段UI框架
3.說明:國產目前涌現了不少基於PhoneGap框架的一些套件,他們基本都是提供一整套解決方便,例如現成的皮膚,現成的先後臺程序,固然你也能夠基於現有的東西修改一些。能夠一塊兒搞定微信、原生應用、移動Web.這類套件的操做思惟讓我感受感性Discuz的思路。因此筆者拿出一個說明一下,其餘相似,我就不說了。
4.受權:徹底開源,固然他也有商業版本的。叫BeX5.
1.官方網站:http://www.apicloud.com
2.性質:UI框架+運行框架+集成服務器端
3.說明:這個國產項目比WeX5這類項目還智能化,你甚至不須要有服務器,徹底用APIClond的存儲、數據庫、web服務器等等服務器應用,他們稱之爲雲,而後你開發的服務器應用被部署到APIClond的服務器上(固然她調用服務器點有嚴格的API接口),你本地web代碼經過服務器端部署打包成原生安裝包,也就是所謂的雲編譯。噱頭十足啊。確實對於一些想快速開發應用的小企業,仍是滿方便的。
4.受權:簡單實用不要錢,可是要足夠的雲資源例如數據庫,雲存儲空間,那就是要收費了
另外其實除了web形式的跨平臺移動應用解決方案外,還有一些其餘的解決方式。例如.net的方式
1.官方網站:https://xamarin.com
2.性質:運行框架+UI框架 (基於獨立的C#語言)
3.說明:mono是.net的開源項目,後來mono的全部公司Novell被收購後,mono項目好似不行了。據說其中的一些成員出來組成公司xamarin繼續mono的使命。xamarin的原理就是讓C#代碼直接在各類智能終端上執行。目前ios跟Android沒有太大問題。其實這類解決方案的思路跟移動web相似,只是開發語言換了對應的運行框架也要換一下。可是好處是對於熟悉原有C#的語言的工做者不須要再熟悉其餘的語言就能開發相應的移動應用,再者對於C#這類成熟的編譯型高級語言,其編譯器的效率應該是高於JS這類解釋性語言的。
4。受權:目前收費,可破解