使用html5开发移动端应用采用什么框架

html-css08

使用html5开发移动端应用采用什么框架,第1张

常用的移动APP开发框架:

框架:PhoneGap

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。

优点:

可跨平台。phonegap框架帮我们解决了差异性,javascript与平台系统的连接由phonegap框架完成。

提供硬件访问控制。可调用加速计、摄像头、罗盘、通讯录、文档、地理定位、媒体、网络、通知。

可利用成熟javascript框架。如:Ext js、jQuery。

缺点:

性能差。运行速度慢,UI反应延时。

不能完全跨平台。不同平台代码需要微调。

内存消耗,调试难度大。

框架:Ionic

Ionic 是一个强大的 HTML5 应用程序开发框架, Ionic 主要关注外观和体验,以及应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。 Ionic 是一个轻量的手机 UI 库,具有速度快,界面现代化、美观等特点。

优点:

轻量级框架,运行速度快。

于 Angularjs,支持 Angularjs的特性, MVC ,代码易维护。

通过 SASS 构建应用程序,接近原生。

缺点:

Ionic是一个前段框架。不能完全取代PhoneGap和JavaScript框架的作用。

需要结合插件使用。

框架:Hbuilder(国产)

HBuilder是DCloud(数字天堂)推出一款支持HTML5的Web开发IDE。“快,是HBuilder的最大优势。

优点:

跨平台:同时支持iOS、Android、Symbian、Windows Phone。

开发工具:基于Eclipse的开发工具,集成UI控件与应用管理。

本地打包:无需配置环境,无需编译,本地一键打包。

代码加密:基于密钥的加密方式,无法破解,像混编一样保护html代码。

技术支持:技术支持及时响应,重视开发者建议和反馈。

缺点:

AppCan免费版因需要把源代码上传到厂商的服务器上打包,对于企业开发来说源代码泄露安全性上有一定风险。企业版虽然可以解决,但企业版稳定尚待观察。

AppCan采用封装的组件,依赖性比较高。不是开源代码。

ppCan 不能很好的解决原生代码的功能。

Wex5(国产)

WeX5应用快速开发框架(含完整的SDK API及全部源码),一次开发、跨端运行。

优点:

高效精致的UI组件体系,基于jquery和bootstrap技术,采用增强的RequireJS模块化技术。

基于phonegap(cordova)框架,如相机、地图、LBS定位、指南针、通讯录、文件、语音、电池等。

可视化拖拽式集成开发环境IDE,全能力的调试支持和智能代码提示。

缺点:

使用范围有限:适用:一般app、电商app、客服app、会员app、微店微商等。

用户量小,存在不稳定因素。

总结:

跨平台方面:大部分框架针对android和ios平台,需要做或多或少的代码调整,不能达到完全跨平台。

性能方面:根据不完全统计,Ionic的性能会更好一点。

PhoneGap出现最早,国内框架都是基于Phonegap开发出来的。

注意:

各框架在实现过程中都会遇到不同程度的坑,请根据框架的侧重点谨慎选择应用的框架。如果要基于Html5开发App,还需要进一步根据需求验证框架的可实施性、并进行不同框架的效果对比。

下面给出部分框架的具体优势,比较后可以选出适合自己的

1, jQTouch

jQTouch易用性强,相关文档也很全面。它的特色是在 使用HTML,CSS和JavaScript创建iPhone App方面拥有出色的能力。jQTouch使用渐进增强的方案,在您相应的HTML顶层来实现像iPhone那样的用户体验。它简单易用,提供了一个基础的小工具集以及动画方案,开发人员只需要编程控制其动态行为即可。

不过有简单测试中发现app的性能存在一定的问题,页面在转换时可能出现跳转或者缺失的情况,以及在响应tap事件的时候还有周期性延迟。该项目在技术上还活跃着,不过原作者的进展和部署都显得太慢了。

只需要遵守MIT的license许可就可以使用jQTouch了

2, jQueryMobile

jQuery Mobile是这个领域的新丁,2010年8月才正式宣布成立,但是已经迅速进展到功能丰富的Alpha 2测试版本了。jQuery Mobile跟jQTouch相比很相似,但是更加标准,更有适应性,感觉很像jQTouch的后继版本,对用户接口和style的支持范围更加宽广了。

jQuery Mobile的性能是不稳定的,(虽然比jQTouch好一些)特别是在响应TAP事件的动画延迟补偿的时候。此外,还缺少一些关键的程序hook,所以不能轻松地让app更加具有动态性能。例如:当一个页面启动的时候事件触发了,这时候却无法通知响应的代码页面将转向哪个用户接口,也不能传递附加的信息给处理模块。针对上述问题,创建工作区来解决还是可行的,但是在这里作者希望其将来的版本能从jQTouch那里学习一下,并把现在的功能缺陷处理掉。

jQuery Mobile的相关文档资料很零散但是有所改进,,(请注意,jQuery Mobile是和jQuery UI相辅相成的,并不是建在单纯jQuery之上的)

想获得jQuery Mobile只需获得MIT或者GPL2 license。

3, Sencha Touch

这是个与Ext JS框架完全不同的产物,其方案与jQTouch/jQuery完全不同:Sencha生成自己的DOM(基于用JavaScript创建的对象)代替了先前存在的HTML增强方式。如此,使用Sencha工作的感觉不像是web编程,而更像是使用Java或者Flex等技术来做app的样子。比起jQuery来,Sencha的感觉更像是YUI。

sencha跟其竞争对手们相比,扩展性强了很多:它拥有大量的用户接口组件,直接的iPad支持,拥有JSON和HTML5线下存储技术使得存储和数据绑定更加方便。(使用Sencha的数据结构来操作app的数据十分酷~它可以实时响应列表的更新)此外,Sencha还是唯一在工具栏上支持内嵌的对象支持,其他方式都是滚轮列表的样子。

在测试程序中,使用Sencha与jQTouch/jQuery相比,虽然app很明显地不那么轻量级,但是其性能和可靠性方面明显提高了,不过其初始化加载时间略慢。

当使用库library或者框架frame进行开发的时候,不遵守框架或者用自己的方式通常都不会获得成功。但Sencha的支持范围足够宽广,这意味着可以使用Sencha的开发方式来实现任何需求。

在文档方面,Sencha做的不太好,虽然很广泛,但是又有很多旧版本的老漏洞没有及时更新,在这些框架中与bug作斗争,调试过程浪费了很多时间,因为文档不够健全,很多问题难以追踪或理解。而在开发者论坛响应作者提问的频率还算较高,不过最终感觉还是不太够。Sencha提供的付费技术支持起价是$300每年,

获取Sencha需要遵守GPL3 license,以及在某种不是GPL标准又很相似LGPL的授权下也能用,以及遵循非商业license也可以获得。

4,TitaniumMobile

与Sencha Touch很相似,Appcelerator公司的Titanium Mobile可以让您使用Javascript API来编写app。不过与Sencha不同的是,Titanium把代码编译成Native的iPhone或Android app,这意味着它并不是一个真正的Web框架,而是一个兼容层或者编译器。(请注意Titanium Mobile的近亲Titanium Desktop是一个基于web的,可以使用HTML /js来编写桌面封装的本地应用的一款软件)

这么说来Titanium允许web开发人员使用JavaScript和一点点XML之类的其他相关技术,可以实现高性能、更换皮肤很方便的Native App,而不需要额外去学习Objective-C或者Cocoa Touch等技术了。

不过这个优点也是其致命的缺点,只能作出Titanium所支持的平台上面的应用,被它们的开发工具限制住了。想证明这一点只需要换一个不是iPhone的平台上来跑一下就知道了。同时,Titanium的调试器也不怎么样,不能使用XCode方式运行或者调试,就算在其仿真器上面程序跑的还算不错,还是需要自己去实际机器上自己再找问题。