2

我的公司构建了自己的项目管理 Web 应用程序。这就像类固醇大本营。该应用程序的核心功能是:

  • 创建任务列表
  • 将任务分配给团队成员
  • 跟踪任务项的小时数

我正在寻找构建移动应用程序作为 Web 应用程序的扩展。移动应用程序必须:

  • 重现上述功能
  • 连接到与 Web 应用程序相同的数据库
  • 保留拖放功能
  • 提供与 Web 应用程序相当或更好的丰富用户体验
  • 在 iphone、droid 和黑莓上工作

鉴于上述要求,我应该如何处理这个移动应用程序的开发?我公司大约有 20 个智能手机用户:8 个 iphone、7 个机器人和 5 个黑莓。

我听说过像 Phonegap 这样的开发框架,它允许您使用 HTML、Javascript 和 CSS 进行开发。然后,该软件可以跨平台跨黑莓、iphone 和 droid 运行。如果我是一个普通/略高于平均水平的程序员,我是否能够用PhoneGap(或其他x平台开发框架)构建一个满足上述要求的高质量跨平台移动应用程序?

或者我应该独立构建每个 iphone、droid 和 blackberry 应用程序?

最好的方法是什么?有哪些取舍?

4

2 回答 2

3

约翰,

好吧,听起来您还有一些工作要做!当您有一个现有的基于 Web 的应用程序时,有两种基本方法可以让您的应用程序在任何特定设备上可用:您可以 (1) 编写一个本机应用程序,为您想要支持的每个设备实现您想要的功能,或者您可以(2) 为您现有的应用程序编写一个基于 Web 的“包装器”,并将内容作为 HTML/CSS 提供给这些相同的设备。

选项 1:为您想要支持的每个平台构建一个原生应用程序

至于第一种方法,好处可能很大。通过使用每台设备的本机框架,您拥有充分的能力和灵活性来利用每台设备的最佳功能。您的应用程序的视图也可以更快地呈现,因为您将从服务器获取的只是用于填充视图的数据(即,您根本不需要加载图像、HTML 模板或 CSS 文件)。

这种方法的缺点是它本质上要求每个设备都有自己的应用程序。因此,如果您支持 Web 应用程序、iPhone 应用程序、Android 应用程序和 Blackberry 应用程序,这意味着您需要维护 4 个完全独立的代码库。如果您向 Web 应用程序添加某种新功能(您可能会在某个时候添加),您还必须在其他三个单独的代码库中实现该新功能。鉴于这些设备可以具有不同的交互模型,这可能会带来挑战。这里的另一个缺点可能是分发(即,您可能必须通过审核过程来查看 iPhone 应用商店之类的东西,具体取决于您希望如何分发您的应用程序)。

选项 2:为您的应用编写基于 Web 的“包装器”(可能使用库)

这种方法也有很多好处。首先,如果您使用像PhoneGapSencha TouchRhomobile这样的框架,最大的好处是理论上您只需编写一次“移动应用程序”代码,它就可以在框架支持的每个设备上运行。与为三个平台编写本机应用程序相比,这要少得多。

这里的缺点如下。这种方法在设备的浏览器中作为网站运行,因此您将无法访问每台设备的所有功能。根据定义,iOS 和 Android API 中的所有好东西都对你不可用。您在本地存储方面也受到一定限制,但考虑到您的 Web 应用程序,这对您来说可能不是一个大问题。另一个缺点是,这种方式需要服务器提供更多带宽,因为您正在提供所有 HTML、图像和 CSS,否则您将不必使用本机应用程序。根据用户数量和页面的复杂性,这对您来说可能很重要,也可能不重要。这里的另一个缺点是您不能全屏显示(例如,在 Mobile Safari 中的 iPhone 底部总是有一个工具栏)。

一般问题

阅读您的问题与我有关的一件事是您的要求清单。复制功能和连接到远程数据存储是您绝对可以使用本机和基于 Web 的移动应用程序完成的事情。但是“保留[ing]拖放功能”不是。例如,对于 iPhone,您可以使用 UITableViewCell 中的句柄来提供重新排序列表的方法,但完全拖放并不适合移动设备的用户交互模型。您可能需要重新考虑这一点。

“提供与 Web 应用程序相当或更好的丰富用户体验”的要求也有点令人不安。虽然基于手机的应用程序可以真正简化获取和操作数据的方式,但请记住,您正在为几英寸见方的屏幕进行设计。以一种有条理的方式提供与使用 21 英寸高清宽屏显示器相同的信息广度实际上是不可能的。

请记住,您在这里是为移动设备设计的,因此您希望利用可用的平台,但请记住您正在处理小屏幕和有限的交互方法(触摸、滑动和手势)。

我的建议是,如果这是您第一次这样做,您想支持所有这些设备,并且您已经有网络经验,我建议您选择选项 2 并使用上述框架之一。这将是最简单的开始方式,并且不会有任何完全不同的概念供您学习。

祝你好运!

于 2010-11-13T02:46:54.613 回答
0

对 Neal L 上面发布的内容的附加评论,使用 Rhomobile,您可以访问设备的本机功能以及在您的视图中进行拖放。

这里有几个培训和示例视频:http ://rhomobile.com/webinars/

于 2010-12-17T19:33:55.183 回答