【问题标题】:Approach to developing mobile application that supports a web application开发支持 Web 应用程序的移动应用程序的方法
【发布时间】:2010-11-13 01:25:30
【问题描述】:

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

  • 创建任务列表
  • 为团队成员分配任务
  • 根据任务项跟踪工时

我希望构建移动应用程序作为 Web 应用程序的扩展。移动应用程序必须:

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

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

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

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

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

【问题讨论】:

    标签: iphone android blackberry mobile smartphone


    【解决方案1】:

    约翰,

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

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

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

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

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

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

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

    一般问题

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

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

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

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

    祝你好运!

    【讨论】:

      【解决方案2】:

      对 Neal L 上面发布的内容的补充评论,使用 Rhomobile,您可以访问设备的原生功能以及在视图中拖放。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-14
        • 2011-08-11
        • 1970-01-01
        相关资源
        最近更新 更多