前段时间做HTML5 Web App的研究和设计,仔细了解了以下的流行Web app框架
Native APP、Web APP、Hybrid APP特性对比: | |||
Native App | Web App | Hybrid App | |
开发成本 | 高 | 低 | 中 |
跨平台 | 否 | 是 | 是 |
需要安装 | 是 | 否 | 首次安装 |
实时增量更新 | 支持 | 支持 | 是 |
系统API调用 | 能 | 否 | 能 |
开发灵活度 | 中 | 中 | 高 |
对AppStore依赖 | 高 | 低 | 低 |
Frameworks | PhoneGap | Titanium | jQueryMobile | jQTouch | Sencha Touch |
介绍 | PhoneGap是一个开源的开发框架,使用HTML、CSS和JavaScript来构建跨平台的的移动应用程序,它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry智能手机的核心功能――包括地理定位、加速器、联系人、声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。 | Titanium 是一个跟手机平台无关的开发框架,用来开发具有本地应用效果的Web应用。当前主要支持 iPhone 和 Android 手机。 主要提供的API包括: 2D/3D animations Geo-location, compass, and maps Augmented reality features Social app authentication and native client support for email SOAP or REST API calls Audio, video, and image capture and playback Taps into local filesystem and SQL lite databases Accesses photo gallery or address data |
针对所有流行移动设备平台的统一的,基于HTML5的跨平台UI框架,构建在稳定的jQuery and jQuery UI基础上。轻量级代码,重视渐进增强,支持灵活,简单的主题设计 | jQTouch 是一个 jQuery 的插件,主要用于手机上的 Webkit 浏览器上实现一些包括动画、列表导航、默认应用样式等各种常见UI效果的 JavaScript 库。支持包括 iPhone、Android 等手机。 | Sencha Touch2是高性能的HTML5移动应用开发框架,让开发者能开发可以运行在iOS, Android, BlackBerry快速和有表现力的应用 提供了50个内置组件,状态管理和内建MVC系统 |
网站 | http://phonegap.com/ | http://www.appcelerator.com/ | http://jquerymobile.com/ | http://jqtouch.com | http://www.sencha.com/ |
设计目标 | 实现跨平台的基于HTML的移动应用,使用JavaScript来调用API与对应平台的SDK进行交互,以启动手机的GPS、震动、重力感应等功能 | Titanium更注重提供原生的UI而只支持iOS+Android Titanium框架具有如下几个方面的特点: 支持多平台(Linux、Mac、Windows、移动设备) 使用Web技术加快软件开发速度 支持Web中内嵌多种编程语言 支持对本地APIs的访问 通过Appcelerator网络云服务,基于Titanium的应用可以更容易的打包、测试和部署 本地功能的模块化,可动态加载指定的功能模块 强大灵活的语言扩展,用户在Titanium框架中可以很方便的扩展多种动态语言 |
Jquery mobile秉行"write less, do more"的原则,致力于帮助开发者开发出兼容最多平台与设备的高质量,自定义的web应用.无须针对每个设备或OS单独开发。目前Jquery Mobile已经支持所有A级浏览器,尽管有少部分的css3以及动画不能很少的执行 | 基于jQuery,但是其侧重点主要是为基于WebKit的浏览器提供经过优化的支持。因而,如果你打算一心锁定使用基于iOS或安卓的设备的用户,那么jQTouch可能比较合适。 | 基于EXTJS的全功能框架 |
框架类型 | 设备能力框架 | 设备能力框架+js代码转化原生代码的能力 | UI框架 | UI框架 | 基础框架+UI框架 |
支持的平台 | iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry等 | iOS+Android | 支持iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry等,具体参考 http://jquerymobile.com/gbs/http://jquerymobile.com/gbs/ |
针对IOS、Android提供经过优化 | |
浏览器兼容性 | 浏览器无关 | 浏览器无关 | 支持常见的主流浏览器,不限于webkit内核 Firebox Mobile (10 Beta) Skyfire 4.1 Opera Mobile 11.5 Dolphin browser UC Browser Chrome Desktop 11-17 - Tested on OS X 10.6.7 and Windows 7 Firefox Desktop 4-9 - Tested on OS X 10.6.7 and Windows 7 Internet Explorer 7-9 - Tested on Windows XP, Vista and 7 Opera Desktop 10-11 - Tested on OS X 10.6.7 and Windows 7 |
基于WebKit的浏览器提供经过优化的支持(Chrome和Safari) | |
性能 | 一般 | 好 | 具备英文和中文文档,demo,wiki和社区 | 现在已经被Sencha合并,可能后续会不再支持 | |
文档和示例支持 | 具备英文文档,demo,wiki和社区 | 资料一般 | 网上资料比较多 | 资料少 | 一般 |
集成IDE和云端打包支持 | 使用各平台自己的IDE打包 Dreamweaver CS5.5支持android和IOS打包 Adobe PhoneGap Build云端打包 |
使用Titanium IDE打包 | 不需要特定IDE 很多IDE都支持jquery和jquery Mobile |
不需要特定IDE 很多IDE都支持jquery |
Sencha SDK Tools,包括slicer(用于把CSS3的图片) 和JSBuilder(合并和压缩js代码) |
开源许可 | Apache 2.0 license | 商业授权 | Apache 2.0 license | Apache 2.0 license | 开源许可是GNU GPL license v 如果用于商业,则有3种商业许可证,视发行数量付费与否 参考http://www.sencha.com/products/touch/license/ |
学习曲线 | 低 提供设备能力相关的13组API,并且支持Plugin 开发时需要使用各平台自己的IDE打包 |
高 所有的东西都通过调用js API实现,然后在发布时编译成native code 需要使用Titanium IDE打包 |
一般 采用了以HTML和CSS为中心的方法来开发页面 |
一般 与jQuery Mobile一样,jQTouch也采用了以HTML和CSS为中心的方法来开发页面,使用JavaScript专门致力于添加事件、动画及其他功能 |
高 使用ExtJs方式实现界面 Sencha Touch是开发框架当中功能最丰富的,不过学起来比较困难 |
最后提一下 JQ.Mobi 和 Zepto.js,这2个都是针对webkit优化的类jquery框架,api和jquery基本一样,但特别针对现代的浏览器做了优化