写在前面:
因为移动市场的盛行带动了移动社交、移动购物、手游、智能化硬件等多个新兴领域。智能终端硬件水平越来越高,运行其上的web浏览器能力也越来越强,加上HTML5JSCSS的蓬勃发展,Web已经能够展现出非常不错的体验。但是单纯浏览器中的web还是不能代替本地原生应用,因为通用浏览器还不能方便地调用移动设备的本地资源例如硬件设备、本地文件。后来就有人想到了,为啥不能自己做一个可以让web方便访问本地资源的专用浏览器呢?这就有了现在移动Web应用开发套件了。这里面涉及两个东西:
1.运行框架:上面说的专门的浏览器,其实也可以理解为一个跑JSHTML5CSS的虚拟机。我们写的web代码可以在虚拟机上运行,并且这个虚拟机定义了通过JSHTML5CSS来访问智能终端本地资源的API。如果把这个虚拟机与web代码合并打包并发布,就可以生产一个原生应用了。
2.UI框架:HTML5JSCSS组合的UI框架。单纯JSHTML5CSS如果自己写漂亮的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。授权:目前收费,可破解