`
longgangbai
  • 浏览: 7238471 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HTML 5+JavaScript混合应用比本地应用的开发成本低

阅读更多

 

开发者们经常思考的一个问题是该开发Web应用、本地应用,还是其他混合形式的内容。其实,该问题的答案虽不确定但十分简单,在正式的开发工作开始前,开发者需想清楚一些关键问题,如:目标受众是谁?开发该应用的目的是什么等等。

市场研究公司Forrester表示,开发者不应该在本地代码和HTML 5之间进行非此即彼的选择。以下是Forrester关于四种开发方案的具体分析:

1)本地应用:

提供最好的用户体验、性能,以及设备API访问(摄像头、联系人、手机状态等);不过,由于四个主要的移动平台(iOSAndroid、Windows Phone、BlackBerry)使用不同的代码库,因此同一款应用需要针对不同的平台进行多次开发,导致实际的开发预算可能会比预期高出150%至210%。

2)HTML 5/JavaScript Web应用

优点是浏览器无处不在,HTML 5的 <audio>和<video> 标签,以及设备访问API极大地增强了Web应用的功能;不足是JavaScript没有本地代码快,用户体验和设计流畅性做得不是很好。

3)HTML  5+JavaScript混合应用

该混合方案使其兼备多种本地功能,是Facebook移动应用和PhoneGap所采用的方案。从某种意义上来说,不管是对Web应用,还是本地应用,都最为两全其美。

4)移动中间软件

集成客户端和服务器端组件开发等多种开发环境,多适用于使用Oracle或SAP等系统的企业级开发工作室。

除此以外,开发者还需认真考虑的是成本和资源。在当前环境下,开发工作室通常会找一些精通Web技术的编码人员开发适用四种主要平台的应用。对Web应用来说,Forrester建议使用HTML 5+JavaScript混合方案;本地应用虽然有更好的视觉效果和更强大的设备访问API,但其跨平台的高额开发成本可能会让很多开发者望而却步。

小结:

总的来说,HTML  5+JavaScript混合方案是成本控制和潜在市场覆盖的最佳组合,极有可能成为未来移动开发市场的主宰。

 

 

 

PhoneGap
在等会谈到更深入的细节之前,我想解释一下什么叫做 PhoneGap。PhoneGap 首先是一个应用程序容器技术,它能让你用 HTML,CSS,JavaScript来创建原生可安装的移动应用程序。PhoneGap 的核心引擎是100%开源的,它是属于Apache Cordova项目的旗下产品。你可以通过我的另外一篇文章来加强了解 PhoneGap.

PhoneGap 用户界面

PhoneGap 应用程序的用户界面使用 HTML,CSS以及JavaScript来创建的。而它的界面底层实质上是用浏览器视图创建的,而浏览器视图将占据真实设备的100%宽度与100%的高度。

建议把这个设想为一个无头部的Web浏览器。与普通浏览器一样可以渲染HTML内容,但是不会显示普通浏览器的边框。所以你可以充分使用这些空间,比如使用HTML/css创建导航顶部栏。

PhoneGap使用的 Web浏览器与手机操作系统的浏览器其实是一样的。在IOS上,这将是原生Objective-C的UIWebView类;在Android上,这是android.webkit.WebView。

PhoneGap API
PhoneGap 提供了很多API让你可以使用JavaScript来调用很多原生操作系统提供的功能。整个过程就是你用 JavaScript 来写程序的逻辑,然后 PhoneGap API 来处理与原生系统的交互。

你能在这里找到所有的 PhoneGap API.

另外,你自己也可以使用JavaScript来创建"原生插件"。PhoneGap 的原生插件能让你自己去自定义本地类与对应的JavaScript接口。当然你可以从读读下面几篇文章区更好的了解 PhoneGap 原生插件。

PhoneGap 应用程序打包与发布
虽然 PhoneGap 应用是用HTML,CSS,JavaScript创建的,但是最终生成的是二进制的应用程序压缩文件,这种文件是可以以正规标准发布渠道发布的。

对于IOS应用来说,最终输出是IPA文件,对于Android应用,则是 APK 文件,对于Windows Phone应用,是 xap 文件,等等。最重要的是打包的格式与与标准原生应用是一样的。随后你就可以在与之对应的卖场上发布了(iTunes Store,Android Market, Amazon Market, BlackBerry App World,Windows Phone Marketplace等等)

PhoneGap 高级应用程序架构
PhoneGap 应用程序运行起来更像Web应用程序一样,PhoneGap 客户端与对应的服务器交互传递数据。服务器先处理业务逻辑然后将结果返回给客户端。


一般说来,服务器都是指像Apache,IIS这种环境与一些特定的脚本语言比如 ColdFusion, Java, .NET, PHP等。PhoneGap 是一个完全的前台展示技术来与任何类型的服务器使用标准Web协议来交互数据。应用程序的对应服务器来处理业务逻辑与计算,然后从数据库保存以及获取数据。

PhoneGap 应用一般不直接与数据库打交道;而是以标准HTTP来与服务器程序交互。来获取HTML内容,REST-ful XML Services,JSON  Services,或者SOAP。这和你创建的那种基于AJAX技术的桌面型浏览器控件的应用是差不多的。

PhoneGap 的这种客户端模式架构一般都是使用 single-page application model,即应用程序的逻辑都是在一个HTML页面上。而且页面不是从内存上清空。所有的数据都是需要以HTML DOM的方式来显示出来。首先使用AJAX技术来从服务器上获取数据,然后使在JavaScript中保存这些变量。
虽然多页面的客户端程序架构现在也被支持了,但是因为会在加载分离页面的时候你回丢失一些需要保存的变量,所以不建议使用这个新架构。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics