寫在前面:
因為移動市場的盛行帶動了移動社交、移動購物、手游、智能化硬件等多個新興領域。智能終端硬件水平越來越高,運行其上的web瀏覽器能力也越來越強,加上HTML5\JS\CSS的蓬勃發展,Web已經能夠展現出非常不錯的體驗。但是單純瀏覽器中的web還是不能代替本地原生應用,因為通用瀏覽器還不能方便地調用移動設備的本地資源例如硬件設備、本地文件。后來就有人想到了,為啥不能自己做一個可以讓web方便訪問本地資源的專用瀏覽器呢?這就有了現在移動Web應用開發套件了。這里面涉及兩個東西:
1.運行框架:上面說的專門的瀏覽器,其實也可以理解為一個跑JS\HTML5\CSS的虛擬機。我們寫的web代碼可以在虛擬機上運行,並且這個虛擬機定義了通過JS\HTML5\CSS來訪問智能終端本地資源的API。如果把這個虛擬機與web代碼合並打包並發布,就可以生產一個原生應用了。
2.UI框架:HTML5\JS\CSS組合的UI框架。單純JS\HTML5\CSS如果自己寫漂亮的UI還是很費力的,你得定義很多CSS,制作很多素材圖片。其實普通web已經有了一些js庫或者叫框架,如:EXTJS、JQuery等。。。那么移動端有嗎?有的!最出名的例如JQuery Mobile。
但是,在web領域,很多項目都是開源的,所以思路一通之后,好多類似的項目涌現出來。那筆者現在就來總結一些,市面上看上去比較火,或者商家不停炒作的一些開發套件吧。
閱讀前的約定:筆者暫且將運行Web代碼的虛擬機或者將web代碼能夠部署到智能終端的開發套件為,運行框架。將用於移動Web應用開發的JS/HTML5/JS開發框架,UI框架。
一、PhoneGap及cordova
1.官方網站:http://www.phonegap.com/
2.性質:運行框架,幾乎全兼容
3.說明:這應該是移動Web應用的先行者之一了。原來是一個小公司開發的框架,其當時出來的目的是為了跨平台,原因是當時的智能終端有着百花齊放的狀態(有興趣可以讀筆者另一篇博文講得當年N個移動操作系統的)。如果應用開發者想在那么多平台上都開發原生應用,是一件非常苦逼的事情。當時的這個框架的作者就是想到為啥不能用web開發應用呢。就有了最初的PhoneGap,后來這個公司被Adobe公司收購了,可見其前景很高。Adobe將PhoneGap核心代碼提煉出來,貢獻於Apache,取名 cordova。而PhoneGap用於Adobe自己的商業項目提供一一些增值服務,例如,在Dreamweaver編寫基於phonegap的webapp代碼然后直接在DW上PhoneGapBuilder服務,在Adobe的雲端自己幫你把代碼封裝成移動平台的原生安裝包。
4.授權:Cordava是完全開源的基於apache開源許可協議下,而PhoneGap就是商業版本的了。
二、Sencha Touch
1.官方網站:https://www.sencha.com/
2.性質:UI框架
3.說明:這個是大名鼎鼎的ExtJs的移動版。最新的版本可能將 移動版與標准版合並。代碼大而全,屬於重量級UI庫。ExtJs這個項目源頭也很有意思,原來只是YahooMail的一個JS UI庫,后來作者在其基礎上擴展並最終形成了現在ExtJs,一個非常龐大的JS UI庫。因為這個是UI庫,所以你可以將其應用於普通移動Web上,也會給你的網頁增色很多。
4.授權:sencha的授權有商業有開源,如果直接用他的js庫基本是不收錢的,但是如果你想要用他的開發套件例如所見即所得的UI繪制套件就需要收費了。
三、JQuery Mobile
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.授權:完全開源,放心使用
四、Titanium
1.官方網站:http://www.appcelerator.com/
2.性質:運行框架
3.說明:這個框架其實並不能完全是基於Web形式的框架,原因剛開始它主要目的有點類似Node.js就是以JS為主要開發語言,支持HTML5的UI,程序自動封裝為JS。最終框架把JS代碼翻譯為原生代碼能夠執行的代碼。甚至JS代碼可以直接調用原生ObjectC,后來適應潮流,Titanium在后續版本中陸續增加對於Web特性的支持,讓其越來越像PhoneGap了。
4.授權:基本的使用時不要錢的,但是要使用SDK里面的高級功能,還有官方的開發套件都是要錢的哦
五、DCloud(國產)
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.授權:目前所有項目都是開源的,隨便用。
六、WeX5(國產)
1.官方網站:http://wex5.com/cn/wex5/
2.性質:UI框架 基於PhoneGap,集成自己的前段UI框架
3.說明:國產目前涌現了很多基於PhoneGap框架的一些套件,他們基本都是提供一整套解決方便,例如現成的皮膚,現成的前后台程序,當然你也可以基於現有的東西修改一些。可以一起搞定微信、原生應用、移動Web.這類套件的操作思維讓我感覺感性Discuz的思路。所以筆者拿出一個說明一下,其他類似,我就不說了。
4.授權:完全開源,當然他也有商業版本的。叫BeX5.
七、APIClond(國產)
1.官方網站:http://www.apicloud.com
2.性質:UI框架+運行框架+集成服務器端
3.說明:這個國產項目比WeX5這類項目還智能化,你甚至不需要有服務器,完全用APIClond的存儲、數據庫、web服務器等等服務器應用,他們稱之為雲,然后你開發的服務器應用被部署到APIClond的服務器上(當然她調用服務器點有嚴格的API接口),你本地web代碼通過服務器端部署打包成原生安裝包,也就是所謂的雲編譯。噱頭十足啊。確實對於一些想快速開發應用的小企業,還是滿方便的。
4.授權:簡單實用不要錢,但是要足夠的雲資源例如數據庫,雲存儲空間,那就是要收費了
另外其實除了web形式的跨平台移動應用解決方案外,還有一些其他的解決方式。例如.net的方式
號外:xamarin
1.官方網站:https://xamarin.com
2.性質:運行框架+UI框架 (基於獨立的C#語言)
3.說明:mono是.net的開源項目,后來mono的所有公司Novell被收購后,mono項目好似不行了。聽說其中的一些成員出來組成公司xamarin繼續mono的使命。xamarin的原理就是讓C#代碼直接在各種智能終端上執行。目前ios跟Android沒有太大問題。其實這類解決方案的思路跟移動web類似,只是開發語言換了對應的運行框架也要換一下。但是好處是對於熟悉原有C#的語言的工作者不需要再熟悉其他的語言就能開發相應的移動應用,再者對於C#這類成熟的編譯型高級語言,其編譯器的效率應該是高於JS這類解釋性語言的。
4。授權:目前收費,可破解
