1 目的
本次评比的目标是以移动Web App开发为基础的JS框架,会有意的排除部分不适用于移动Web App开发的JS框架,如 jQuery、ExtJS等。希望通过这次评比结果,能找到最合适你移动Web App应用开发的JS框架。
2 方法
由于JS框架在功能、特性和应用领域不同,所以,我将现在的主流JS框架分成四个大类:
- Mobilie Javascript Library。移动JS框架,在Desktop Javascript开发中具有代表性的JS框架有jQuery、ExtJS等,而在Mobile Javascript开发中比较成熟的有Sencha Touch、jQuery Mobile等;
- Javascript Template Engine。JS模版引擎,Javascript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰。Sencha Touch自带XTemplate模版引擎,完美的应用在组件渲染中;
- Javascript MVC Framework。JS MVC框架,如Backbone、Ember等。在ExtJS 4的应用架构中就设计有MVC模式,同时Sencha Touch很好的继承了ExtJS在MVC方面的优秀架构思想;
- Javascript Module Loader。JS模块化加载,在CommonJS提出AMD规范时,就得到了大多数开发者的积极响应,同时诞生了一批符合 AMD规范的优秀的框架,如RequireJS,现在主流的JS框架都陆续开始支持AMD规范 ,如Dojo等。
本篇文章主要对Mobilie Javascript Library进行对比,针对移动JS框架中的两类特性:
- 支持平台与兼容性
- 开发与学习
作为参考指标,最后分析总结。
3 Mobile Javascript Library
Mobile Javascript Library 包含两种类型的JS库:UI框架、类库
- UI框架包含一套完整的WebApp用户体验,提供一组功能丰富的控件,并允许开发者方便地依照自己的需要加以扩展;
- 类库仅是一些类与函数的集合,类库中的一个个“完整的概念”之间是无关的或是关系松散的。
以我们接触得比较多的两种Desktop Javascript Library为例,ExtJS属于UI框架,而jQuery就是一个类库。
3.1 选择移动JS框架思考的问题
- 优秀的触摸屏交互体验:手指作为输入设备代替鼠标光标提供了一个额外的用户界面设计的挑战。Mobile Javascript Library提供标准的用户界面元素和事件处理模型。
- 跨平台:支持多种移动设备平台,如 iOS和Android等 。
- 轻量级:由于移动网络带宽的限制,会更加重视文件大小 。
- 使用HTML5和CSS3标准:大多数主流移动设备的网页浏览器支持HTML5和CSS3,移动WebApp使用W3C规范的新功能与特性为用户提供更好的体验。
下面,通过比较Mobile Javascript Library的特性,找到一个最适合的JS框架帮助你创建移动WebApp应用。
3.2 特性比较
3.3 分析
Sencha Touch
优点
• 用户体验最接近Native App, 具有整体的UI组件、布局解决方案;
• 统一的编程代码结构和要求,良好组织的代码易于维护;
• 继承ExtJS 4的应用程序MVC架构;
• 完善的API文档,示例;活跃的社区,网上有大量的文档书籍帮助学习;
缺点
• 兼容性差,仅支持webkit内核的浏览器;
• 框架比较重量级,学习成本比较高;
• 商业化使用有版权问题;
jQuery Mobile
优点
• 跨浏览器兼容性最好,几乎兼容所有的平台和浏览器;
• 入门简单,语法简洁,编码灵活,一些简单的应用直接用HTML既可实现,无需Javascript;
• 开源插件与第三方扩展网上资源丰富;
• 完善的API文档,示例;活跃的社区,网上有大量的文档书籍帮助学习;
缺点
• jQuery Mobile对代码没有特定的要求,后期维护难度较大;
Zepto
优点
• 学习成本低,Zepto保持了与jQuery几乎一样的功能,使用gzip压缩只有5-10k;
缺点
• Zepto不支持Windows Phone下的IE ;
Jo HTML5 Mobile App Framework
优点
• 没有什么突出的优点,感觉是与Sencha非常相似的一个框架;
缺点
• 兼容性相比Sencha Touch稍好一点,但是也不支持WP IE、Firefox、Opera;
• 网上文档、资料太少,中文资料几乎没有,英文资料也非常少;
Wink Toolkit
优点
• Wink的核心库是轻量级的,支持AMD规范的模块化加载,功能接口相比Zepto更丰富;
• 提供很酷的2D、3D效果UI组件;
缺点
• 组件对 Android的支持程度不好,3D组件无法使用 ;
ChocolateChip-UI
优点
• 组件样式模仿iOS界面,用户体验与iOS非常相似;
缺点
• 兼容性差,仅支持webkit内核的浏览器;
• API文档太简单,网上资料非常少,社区没有活力;
• 组件扩展难度高,要熟悉WMXL标签语法;
XUI
优点
• XUI有多个版本,跨浏览器支持的代码都被剥离,使用GZIP压缩之后最小只有4.2kb。学习成本低,与jQuery相似的链式语法。
缺点
• XUI的优点也是缺点,有的Web App应用可能并不希望将跨浏览器支持拆分为多个版本使用;
Dojo Mobile
优点
• Dojo本身有很多优秀的设计,面向对象、MVC、JS模块化加载;
• 完善的API文档,示例;活跃的社区,网上有大量的文档书籍帮助学习;
缺点
• Dojo Mobile需要依赖完整的dojo库,压缩之后的代码140k,gzip压缩之后在40k;
• 兼容性差,仅支持webkit内核的浏览器;
• 学习成本高;
4 总结
想要最好的用户体验Sencha Touch会是最好的选择,想要最好的兼容性应当选择jQuery Mobile,如果有相当强大的UI团队,Zepto、XUI会是更好的选择,适合的才是最好的。
对于我个人而言,我比较青睐Zepto这种小巧灵活的类库,能让我有最大的自由发挥空间。我在面向对象、UI组件、MVC方面拥有多年的开发经验,有能力去设计、编写 UI框架,当然,这些都离不开我的UI团队的支持。虽然Zepto不兼容IE,但是这在可接受的范围之内, 如果未来官方不能支持IE 的话,我的团队有足够的实力与时间实现Zepto对IE的兼容 。
选择一个适合的移动JS框架只是开始,移动WebApp开发才是真正的挑战,如何解决跨平台的各种兼容问题?如何保证基于HTML5的WebApp的稳定性?如何平衡动画效果的性能问题?等等。
5 参考资料
下载Sencha Touch源代码、阅读文档并加入社区。
下载jQuery Mobile源代码、阅读文档并加入社区。
下载Zepto源代码、阅读文档。
下载Jo HTML5 Mobile App Framework源代码、阅读文档并加入社区。
下载Wink Toolkit (http://www.winktoolkit.org/)源代码、阅读文档并加入社区。
下载ChocolateChip-UI源代码、阅读文档并加入社区。
下载XUI源代码、阅读文档 。
The Top 10 Javascript MVC Frameworks Reviewed
Sencha Touch or jQuery Mobile? – Read This Before You Make a Decision
5个jQuery的备选轻量级移动客户端开发(Mobile development)类库
使用 Dojo Mobile 为 iOS 智能终端开发 Native-like Web 应用
原创文章,转载请注明出处http://zhangdaiping.iteye.com
相关推荐
Clouda是基于node.js的Webapp开发框架,在使用Clouda时需要安装node.js和MongoDB。 Clouda 是百度推出的一款面向资深开发者的WebApp开发框架。在Clouda中开发app,可以在多终端下实现数据同步、任务迁移。并且Clouda...
Sparrow是一款专为移动Web App开发设计的前端轻量级框架,它旨在简化开发者在构建响应式、高性能的移动应用时的工作流程。在当前的互联网环境中,随着移动设备的普及,移动Web App的需求日益增长,Sparrow应运而生,...
Webapp通常使用HTML、CSS和JavaScript来构建,有时也会结合现代前端框架如React、Vue.js或Angular,以提供更好的性能和用户体验。 综上所述,这个"webapp框架"提供了从用户认证到界面展示,再到多媒体播放的一整套...
总之,苹果iPhone WebApp开发是一个结合Web技术与移动设备特性的过程,需要开发者具备扎实的Web基础知识,理解移动设备的交互特点,并掌握相关的开发工具和框架。通过不断学习和实践,开发者可以创造出富有创新性和...
将H5页面“打包成app”意味着利用Web技术(如HTML5、CSS3和JavaScript)开发的移动应用可以通过封装技术,如Cordova或PhoneGap,转换为可在移动设备上安装和运行的应用程序,这种方式被称为混合应用开发。...
1、AppFramwork框架,针对HTML5浏览器和移动设备开发的javascript框架,是个极其快速的查询选择库,具备跨平台平台特性。该特性解决了学生,家长,老师智能终端多样化的问题,应用开发一次,可以使用在多种机型和...
#### 五、高级JavaScript框架 对于那些希望进一步提升应用性能和功能性的开发者,以下是一些值得关注的高级框架: ##### 1. **XUI** XUI是一个专门为PhoneGap开发设计的框架,它针对移动设备进行了优化,去除了...
移动 Web 应用程序开发框架在过去的十年中已经成为开发者的重要工具,尤其是在2014年,随着移动互联网的快速发展,这些框架为高效构建跨平台的移动应用提供了强大的支持。以下是一些值得推荐的移动 Web 开发框架,...
Touchy可以与jQuery或Zepto.JS配合使用,便于创建移动WebApp。 7. Ripple:Ripple是Chrome浏览器的一个扩展,用于简化移动应用的跨平台测试和调试,模拟不同设备的详细信息,如user-Agent和Geolocation。 8. ...
Touchy Boilerplate是一个用于构建移动WebApp的工具,包含HTML模板、Meta标签等基本元素。它支持动态导航、固定页头、滚动内容和浏览历史记录,同时可与jQuery或Zepto.JS配合使用。 Ripple是Chrome浏览器的一个扩展...
本教程主要聚焦于WebAPP的开发,旨在帮助学习者掌握构建基于Web技术的移动应用程序所需的关键技能。WebAPP,即Web应用程序,它利用浏览器来运行,可以在多种设备上使用,包括智能手机和平板电脑。通过这种技术,...
### iPhone WebApp 开发指南知识点概述 #### 一、前言 - **iPhone吸引力与功能扩展**:介绍了iPhone因其出色的设计、性能及丰富的应用而受到欢迎。原生系统较为基础,但通过第三方软件大大增强了其功能性和用户体验...
### 10大优秀的移动Web应用程序开发框架推荐 随着移动互联网技术的快速发展,移动Web应用程序的需求日益增长。本文将详细介绍10个优秀的移动Web应用程序开发框架,这些框架可以帮助开发者更高效地开发移动Web应用。...
第三部分主要介绍目前比较流行的两套JavaScript移动开发框架jQueryMobile、SenchaTouch,以及PhoneGap,并配备丰富的例子作为实践;第四部分主要结合SenchaTouch框架库和HTML5技术构建进行讲解,旨在帮助读者将HTML5...
2. **移动WebApp**:移动Web应用程序是指运行在移动设备上的基于Web的应用程序。它们通常通过浏览器访问,而无需下载安装。与原生应用相比,移动WebApp具有跨平台性高、更新方便等优势。HTML5技术的发展使得移动...
1、AppFramwork框架,针对HTML5浏览器和移动设备开发的javascript框架,是个极其快速的查询选择库,具 备跨平台平台特性。该特性解决了学生,家长,老师智能终端多样化的问题,应用开发一次,可以使用在多种机 型...
H5+SDK是由5+App(即DCloud)提供的一套完整的混合开发框架,它包括一套JavaScript API,可以方便地在WebView中调用Android和iOS的原生功能,如访问硬件设备、获取用户位置、推送通知等。在本Demo中,5+SDK扮演了...
1、AppFramwork框架,针对HTML5浏览器和移动设备开发的javascript框架,是个极其快速的查询选择库,具 备跨平台平台特性。该特性解决了学生,家长,老师智能终端多样化的问题,应用开发一次,可以使用在多种机 型...