内容


评论专栏

Mobile 应用程序与 Web

系列内容:

此内容是该系列 # 部分中的第 # 部分: 评论专栏

敬请期待该系列的后续内容。

此内容是该系列的一部分:评论专栏

敬请期待该系列的后续内容。

移动体验

移动平台将成为企业的下一种颠覆性技术。

智能手机和平板电脑这类设备将迅速成为主流客户端。能够将基础架构和 SOA 投资扩展到这类设备上对于企业来说不久将会是至关重要的。据 Gartner 所述,到 2013 年移动电话将取代 PC 机成为最常见的 Web 访问设备。为客户和进程的交互提供多个通道也是很重要的,因为客户往往喜欢以较少的信息在手机这类设备上启动一个进程,然后在他们家中的电脑上结束。

在我之前的 评论专栏:使 Web 2.0 趋于成熟 一文中,我讨论过 REST 实现是扩展到富互联网应用程序的关键属性。REST 实现也是扩展投资到移动领域的关键,因此如果您的 Web 2.0 开发已经成熟,而且已经开始围绕 REST 创建基础架构了,那么您就距移动领域不太远了,因为移动平台可以使用 REST API 来访问数据。

如今的 Mobile 用户期望高保真访问其台式机上所拥有的相同信息,以一种易于学习的、移动友好的(通常是触摸友好的)格式呈现。 因此,在很多方面,移动提出了新的挑战:

  • Mobile 用户要求高效及时地访问信息。
  • 交互短暂专注,且中断频发。
  • 设备通常以触摸式为主。
  • 用户界面必须简单明显。
  • 界面资产很珍贵。
  • 输入应最小化。
  • 无无线覆盖时,应用程序也必须可使用。
  • 数据及时性必须交流。
  • 安全性至关重要。
  • 设备常用于监控而不是主动消费。
  • 社交互动很重要。
  • 比起传统企业软件周期 Mobile 硬件和用户界面进化更快。

开发移动应用程序

Mobile 将 “应用程序” 这个概念提到了最前沿。就几年前,移动还只是转换内容代码来适应设备,而现在移动体验已经演变成承载移动应用程序的成熟平台。iPhone、Blackberry、Android、以及其他智能设备的用户已经适应了浏览一个应用程序网站或商场,寻找他们所需要(或想要)的应用程序。

智能设备与其本地平台一起发布,Apple 设备是构建在 iOS 平台上,而开发人员使用 Objective-C 和 Cocoa 构建应用程序。Android 和 Blackberry 也有自己的工具包。就这一点而言,企业可以选择为开发人员提供多个平台或者只针对一两个平台。另一个解决方案是购买 MEAP 平台执行本地应用程序代码生成。

然而,Web 发展非常之快,如果您的目标是以较低的成本启用尽可能多的设备,那么 HTML 5 是一个不错的选择。基于 HTML 5 的技术是跨各种设备和工具包的通用平台。

您可以看到进行移动开发的 4 种方法。图 1 显示了该波谱。

图 1. 移动平台开发方法
图 1. 移动平台开发方法
图 1. 移动平台开发方法
  • Pure Web 应用程序在移动领域有重要作用。平板电脑,比如 iPad,使您可以浏览 Web 网站。您需要考虑的是您的 Web 应用程序如何在平板电脑上运行,元素(比如触摸)如何启用。
  • Mobile Web 关注利用 HTML 5、CSS、JavaScript™ 这类功能,并延伸到访问设备内容的功能上。Geo-location API 是 HTML 5 的一个扩展。访问本地存储和离线功能都很重要。
  • 当然,您也有本地应用程序,因此您可以使用设备 SDK 来开发应用程序。这提供了最高级别的应用程序丰富性,但是每个设备都有自己的编程模块。打包应用程序,放入一个应用程序商店,当各种操作系统发布时进行升级,其他活动都是与此应用程序相关的维修成本的一部分。
  • 还有一个混合模型,一个可以在其中使用 Web 技术的表单,但是可作为利用本地 API 的桥梁。

企业不需要一个全有或全无的方法来开发移动应用程序。就像您现在对 Web 应用程序所做的那样,您可以根据某些需求来对您的平台选择进行分类。需要考虑以下几个因素:

  • 需求:这是所有应用程序通用的,但仍然很重要,您如何利用移动应用程序开展您的业务?
  • 客户:您的目标是防火墙后的员工(B2E)?还是客户(B2C)?
  • 技术集合:您的开发人员需要掌握什么技术?
  • 当前基础架构:您的基础架构利于 SOA 和 REST 吗?
  • 数据:您的数据可通过各种渠道访问吗?
  • 安全性:您的数据在这些设备上存储安全吗?您有能力加密一个 B2E 场景吗?您允许在 B2C 场景下进行离线存储吗?

支持技术

如果您需要最佳的图形和游戏般的体验,您可能会考虑到构建本地应用程序,且目标只是少许设备。然而,有了 HTML 5 和 CSS 3,图形化体验对于大多数商业应用程序而言最好不过。除非您正在构建游戏,或者一些非常强烈的饼状统计图和图表,支持您员工进行本地应用程序开发的成本可能不足以证明该方法的合理性,可能限制您实现最小设备集合。

移动 Web 领域发展迅速。各种技术可以帮助您接近本地体验:

  • Dojo 移动

    Dojo Toolkit 是用于 Web 2.0 开发的 IBM 策略工具包。该工具包在 dojox 之下包含一个移动包。通过 CSS3 和定制样式,dojox.mobile 包提供在移动设备上显示和运行的接口。对于将各种设备作为目标的预构建主题,您可以创建移动一个和本地应用程序看起来很像的 Web 应用程序。图 2 显示了示例。

    图 2. Dojo 移动示例
    图 2. Dojo 移动示例
    图 2. Dojo 移动示例

    您可以通过在您的设备上打开它们来查看一些 测试案例

  • HTML 5 和移动体验

    HTML 5 的某些方面有助于您的移动 Web 应用程序接近一个本地体验:

    • Web SQL 数据库 API 实际上不是 HTML 5 规范的一部分,但它是规范套件的一部分,支持您构建成熟的 Web 应用程序。Webkit(Safari、SafariMobile、Chrome)支持这个规范,因此 SafariMobile 将其扩展到 iPhone 和 iPads。
    • 缓存清单是一个文本文件,按顺序列出所有需要缓存的应用程序资源,确保特定应用程序运行,而无需连接因特网。在缓存清单中列出的文件存储在应用程序缓存中,类似浏览器的标准磁盘缓存但是更为健壮。一旦一个资源被存储在这个应用程序缓存中,浏览器将不需要从 Web 中请求它,直至缓存项被清除或者缓存清单无效。您可以将这一优势用于您的移动应用程序。
    • Apple iPhone 的 “应用程序模式” 支持一个 Web 应用程序来运行更加本地化的 iPhone 应用程序。这包括在全屏模式下运行的功能,以及使用一个主界面图标和一个启动 “splash” 面板。这些应用程序背后的技术仍然是 HTML、CSS 和 Javascript,但是对于像 SQLLite 和缓存清单这类工具,您可以真正开始建立这种外观、感觉和反应都很像本地 iPhone 应用程序的 Web 应用程序。
    • 其他 HTML 5 API,比如 geo-location,开始缩小本地体验的差距。
  • 混合工具包

    倘若 HTML 5 服务不够,还有一些工具包,支持您创建混合型应用程序。一个示例是 PhoneGap,一个 HTML 5 应用程序平台,支持您使用 Web 技术编写本地应用程序并访问 API 和应用程序存储库;一句话,就是构建混合应用程序。PhoneGap 提供 API 来访问特定设备工件,比如照相机、录像机、通讯录、通知单以及其他设备来帮助您尽可能多地将设备作为目标。您可以使用当前技术集合构建应用程序并将它们部署在一个应用程序库中。您还可以从您的服务器服务一些应用程序部分。

    混合平台的其他示例包含源自 Appcelerator 的 Titanium 和开源框架 Rhodes

结束语

扩展到移动逐渐成为企业的主要需求。新兴标准(HTML 5)和框架(dojox.mobile)可以以最低成本满足这些需求,而不影响功能。

致谢

感谢 Greg Truty 和 Chris Mitchell 对本文的贡献。


相关主题

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Web development
ArticleID=659684
ArticleTitle=评论专栏: Mobile 应用程序与 Web
publish-date=05192011