跨平台移动应用程序开发框架列表
序号
分类
名称
开发语言
特点
备注
1
WEB
SproutCore
HTML+JS+CSS
纯JavaScript框架
2
WEB
Cappuccino
Object-J
JavaScript 超集
3
WEB
jQTouch
HTML+JS+CSS
在iPhone最好
非框架
4
WEB
jQuery Mobile
HTML+JS+CSS
兼容主要手机平台
5
WEB
The M Project
HTML5+NodeJS
基于jQuery Mobile
支持离线使用
6
WEB
Sencha Touch
HTML5
纯JavaScript框架
7
WEB
iPFaces
HTML+JS+CSS
基于表单的应用
8
Native/WEB
PhoneGap
HTML+JS+CSS
提供了操作手机功能的接口
9
Native/WEB
Appcelerator Titanium
Python 或者 Ruby
类似PhoneGap
10
Native
Mosync
C
一次编程,
可编译成对应平台的运行程序
11
Native
Mono for Android
Mono touch for iOS
C# 和.Net
在不同平台上共享数据结构和非UI代码。
Xamarin 收费软件
如果需要使用手机上的设备,并且希望使用一种语言编写一次代码就可以运行在多种平台上的话,推荐使用 Mosync,但是对中文的支持还不稳定。另外,因为编译后以客户端程序方式运行,运行效率比WEB方式要高一些。
如果从快速部署到多种平台的角度,可以使用PhoneGap,框架已经提供可以运行在各个平台上的程序主体,一般只需要编写好网页外观和脚本,然后在各个平台IDE下做好相应的配置即可。框架本身提供了一些比如GPS,呼叫电话等等手机功能接口,但是,如果在应用中需要使用框架没有提供的手机功能时,需要自己编写相应的调用接口的实现。
如果应用不需要使用手机上的设备的话,使用The M Project,jQuery Mobile等等JavaScript框架,不用开发客户端程序。可以快速部署和升级。如果希望WEB应用程序离线后仍能够使用,考虑使用支持HTML5的手机浏览器。
The M Project 吸收了SproutCore 的思想(MVC框架),提供了一套以jQuery Mobile为基础的UI和核心的文件, 既可以运行于Node.js这样的JavaScript服务器上,也可以运行在Apache等普通的WEB服务器上。
一 SproutCore
SproutCore 是一个 web 应用程序框架,主要是为一个特定的设备开发类似于本地应用程序的 web 应用程序。
是一个纯 JavaScript 框架,没有服务器端组件和较小的 HTML 和 CSS。任何 web 服务器都可以运行它。
SproutCore 是 web 应用程序的第一个也是最重要的一个 Model-View-Controller (MVC) 框架。而 SproutCore 是一个纯客户端框架,M、V 和 C 都是驻留在客户端的。这实际上是 MVC 运行一个更自然的方式;事实上,大多数桌面操作系统提供类似的 MVC 框架已经十几年了。
参考资料:
1.
用 SproutCore 构建移动应用程序:http://www.ibm.com/developerworks/cn/web/wa-mobilewebapp/index.html?ca=drs-
2.
官方文档:http://www.sproutcore.com/documentation
二 Cappuccino
Cappuccino引入了自己的编程语言 Objective-J,它非常类似于 Objective-C。因此,预先了解 Objective-C(或者它起源的语言 C 和 Smalltalk)将有助于简化 Objective-J 学习过程。由于是纯客户端框架,Cappuccino 不需要服务器端组件。 Cappuccino 应用程序只需要一个基本 web 服务器。
Objective-J 是一个 JavaScript 超集。它将 Objective-C 在 C 上添加的大部分语法添加到 JavaScript。Objective-C 程序员有时不得不使用 C,但通常只是为了执行低级任务或使用一个 C 库。这种情况对 Objective-J 程序员同样适用。通过将 Objective-C 语法带到 JavaScript,从而带到浏览器,Cappuccino 使得将大部分 Cocoa 框架移植到 web 成为可能。
参考资料:
1.
为移动 web 应用程序开发而探索 Cappuccino :http://www.ibm.com/developerworks/cn/web/wa-cappuccinowebapp/index.html?ca=drs-
2.
官方站点: http://cappuccino.org/learn/
三 jQTouch
jQTouch — 一个基于 jQuery 的 web 框架,专为移动 web 开发而设计的。
jQTouch 之所以受欢迎是因为它构建于 jQuery 之上。从技术上来说它是一个 jQuery 插件,添加特定移动功能和样式到应用程序。具体来说,它添加样式和可视效果,旨在利用 iPhone 的功能优势。尽管它的很多特性在其他移动设备上也能很好地工作,jQTouch 设计时无疑参考了 iPhone。
jQTouch 不像其他架构那样试图提取出工作流。相反地,它依赖功能强大的 jQuery 工具使得表单处理、Ajax、页面转换这类任务变得更为容易。如果您是一名经验丰富的、且习惯于使用 web 应用程序的 web 开发人员 — 使用 web 功能强大的 HTML、JavaScript 和 CSS 组合— 那么,jQTouch 也会非常适合您。您可以快速生成具有吸引力、易于使用的移动 web 应用程序。然而,如果您想采用一个更结构化的方法,那么您将不得不自己添加结构。这极大地改变了通常由一个开发团队来处理的巨大且复杂的应用程序。此外,jQTouch 不改变创建 web 应用程序所涉及到的标准工作流 — 它只是试图让每个工作流步骤更容易。其他框架进一步提取大量步骤,并使用较少的样板文件提供一个更有逻辑的工作流。
参考资料:
1.
使用 jQTouch 增强您的下一个移动 web 应用程序 http://www.ibm.com/developerworks/cn/web/wa-jqtouch/index.html?ca=drs-
2.
官方网站: http://jqtouch.com/
四 jQuery Mobile
jQuery Mobile 应用程序的设计目的是在 Androids 和 iPhones以及其他平台上都能良好运行。它不仅仅是一个 jQuery 插件;相反地,它从根本上是为移动电话构建的,转换成更简洁、更灵活的代码:jQTouch 有 69 KB 的 JavaScript 和 8KB 的 CSS,而 jQuery Mobile 只有 12KB 的 JavaScript 和 6KB 的 CSS。
参考资料:
1.
官方网站: http://jquery.com/
五 The M Project
The-M-Project是一个强大的JavaScript框架,它利用HTML5新的特性来更好和更简便地开发移动应用。
这个框架遵循著名的MVC软件架构模式。
它还支持离线,所以你的用户可以在没有连接网络的情况下继续操作(当下次有连线的时候,再将数据同步到服务器中)。它提供了优秀的文档(这个项目拥有一个引导新用户入门的开发指南)。
支持多数手机平台,包括 iOS, Android, Palm webOS, 和 Blackberry OS。
参考资料:
1.
官方网站: http://www.the-m-project.org/
六 Sencha Touch
Sencha Touch 来自于大名鼎鼎的JS框架Ext JS。它整合了Ext JS和 JQTouch。目前Ext JS 已经更名为Sencha。
Sencha Touch可以让你的Web App看起来像Native App。美丽的用户界面组件和丰富的数据管理,全部基于最新的HTML5和CSS3的 WEB标准,全面兼容Android和Apple iOS设备。
它提供了强大的数据包,通过Ajax、JSON、YQL等方式绑定到组件模板,写入本地离线存储。
参考资料:
1.
使用 Sencha Touch 开发超炫的跨平台移动 Web 应用: http://www.ibm.com/developerworks/cn/web/1108_husha_senchatouch/index.html?ca=drs
2.
-中文站:http://extjs.org.cn/taxonomy/term/261
3.
官方网站:http://sencha.com/
七 iPFaces
iPfaces 是一个用来开发手机设备上基于表单的网络应用程序的框架。开发者可以不关心具体底层的手机是什么平台。几乎支持所有主流的服务平台,如Java, PHP 和ASP.NET。
iPfaces有2个版本:社区版和商业版。其中社区版基于GNU General 3许可,可供免费下载。商业版本提供更多的专业支持,培训和咨询服务。
参考资料:
1.
官方网站: http://www.ipfaces.org/
八 PhoneGap
PhoneGap是一款开源的手机应用开发平台,它仅仅只用HTML和JavaScript语言就可以制作出能在多个移动设备上运行的应用。PhoneGap将移动设备本身提供的复杂的API进行了抽象和简化,提供了一系列丰富的API供开发者调用,只要你会HTML和Javascript或者Java语言,就可以利用PhoneGap提供的API去调用各种功能,PhoneGap就能让你可以制作出在各种手机平台上运行的应用,这对移动应用开发者来说无疑是个福音。
这个对Symbian的支持也很不好,官方的Symbian demo在N95上无法跑。
QQ邮箱的客户端版本,是使用PhoneGap作为基础开发的。
参考资料
1.
搭建基于 PhoneGap 框架的 Mobile 应用 http://www.ibm.com/developerworks/cn/web/1108_rendy_phonegap/index.html
2.
官方网站: http://www.phonegap.com/
九 Appcelerator Titanium
Appcelerator是一个构建基于SOA的RIA应用的全集成平台,用来构建富应用、交互式的网站和应用程序。它是开源的。
Appcelerator基于已存在的WEB标准为Java, Ruby, PHP, Python 和 .NET等提供基于消息的集成RIA和SOA整合点. Appcelerator内建有user interface widget,可以作为对HTML, CSS and Javascript的补充,使开发者迅速集成进RIA常用组建而不必写Javascript或者服务器端代码。
Appcelerator的Titanium平台,主要用来进行智能手机和平板电脑跨平台应用的开发。
类似于PhoneGap,它也可以直接调用iPhone和Android手机的设备能力。
参考资料:
1.
官方网站:http://www.appcelerator.com/
十 Mosync
MoSync是一个开源的C/C++的集成开发环境。可以简化移动开发程序的开发难度,并且能够大大提高移动程序开发人员的工作效率。其主要优点:开源,跨平台(android,j2me,symbian,mobile等),易于移植。
采用C,开发速度优势及易用性明显不如android及j2me,而对于它宣称的可以转换为android,j2me程序,相应的过程比较有意思:采用了eclispe做为开发IDE基础,用其编译C,再使用编译器改写成java程序,
对中文的支持性很糟糕。MoSync所提供的UI系统压根没考虑对中文的支持,有国人问如何显示中文,MoSync的回复让我感到很雷,要制作一个一个byte的中文字符字体。不过MoSync正在做native ui的相关工作,恐怕还需要相当长的时间来发展。
参考资料:
1.
官方文档: http://www.mosync.com/documentation/manualpage/what-mosync
十一 mono Project
Mono 是一个帮助开发者开发跨平台应用程序的软件平台。Mono本身是一个微软的.NET Framework 的开源实现。这个项目时由xamarin来赞助的。Mono for iOS 和Mono for Android分别是两个开发环境,它们都使用了C#、mono 框架、VS和MonoDevelop来开发应用程序。这两个开发环境既有收费版,也有社区版。
使用这个工具集,可以实现在iOS和Android之间共享数据结构和非用户界面的代码。换句话说,在开发应用程序时,除了用户界面需要单独为两个平台分别开发外,业务逻辑部分的代码是可以共用的。
开发的基本流程是,编码、生成资源(指应用程序中用到的图片、字符串、布局文件等)、编译、包装成对应平台可用的二进制包。
Mono for Android提供的只是让你可以用C#代码编写Android应用。
Mono for Android提供了一个可以免费下载的版本,但只能在模拟器中使用。要想在真实环境中使用,需要购买商业许可。
参考资料:
1.
官方文档: http://docs.xamarin.com/
2.
Mono Project : http://www.mono-project.com/Main_Page