【问题标题】:What is the practicality of using PhoneGap? [closed]使用PhoneGap的实用性是什么? [关闭]
【发布时间】:2012-07-16 17:02:40
【问题描述】:

我目前正在使用 PhoneGap 进行一些研究,而不是为所有平台编写不同的代码。在我看来,马上,一个缺点是,事实上,你不是在本地编写你的应用程序。我问自己,这是什么意思?

  1. 会影响性能吗?
  2. PhoneGap 是否为所有本机功能提供包装器?文档是否足以通过?
  3. 您想要或需要什么样的 UI(即 JQuery),它们是否有适当的文档?这些框架是否可以跨不同平台无缝工作?
  4. 既然 Adob​​e 已经加入其中,PhoneGap 最终会被淘汰吗?从长远来看,它真的不重要吗?

我想听听那些尝试过 PhoneGap 的人的任何反馈/建议/建议。另外,如果有 PhoneGap 不提供的功能列表,有人可以提供链接吗?

**编辑:我应该指出,我意识到使用PhoneGap 的一个重要动机是不需要学习多种编程语言。我已经知道 Objective-C 和 Java,我只是在探索 PhoneGap 的潜在用途——所以我从一个稍微不同的角度来讨论这个问题。我在下面的一个 cmets 中提到了这一点。

【问题讨论】:

  • 如果您想查看一些 html 应用示例,请查看:m.chromeexperiments.com 这不是 phonegap,但您也可以使用 PhoneGap 完成所有这些。只是为了让您知道一些可能性。

标签: android ios html cordova


【解决方案1】:

简短而客观的回答:视情况而定。

具体来说,PhoneGap/Cordova 是否适合您的项目取决于您的需求。那里有很多基于 PhoneGap 的项目,所以它显然对一些开发人员有用;只有你可以说你是否可能在那个群体中。

更多详情:

会不会影响性能?

是的。这是否重要取决于您的应用程序。

PhoneGap 是否为所有本机功能提供包装器?是个 足够的文档?

第一个问题没有,但它是可扩展的,所以如果需要,您可以随时添加自己的本机代码。只有您可以说文档是否足够,但如果您需要/想要,您可以随时查看代码。

您想要或需要什么样的 UI(即 JQuery)?他们有吗 适当的文件?这些框架是否可以跨平台无缝工作 不同的平台?

这似乎取决于您正在做什么以及您已经知道的内容。 PhoneGap 在这方面并没有太大的不同。

由于 Adob​​e 现在处于混合状态,PhoneGap 最终会过时 从长远来看,这并不重要?

Cordova(以前称为“PhoneGap”的开源软件)能否生存和发展取决于许多因素:

  • 有人在使用它吗?

  • 使用它的人是否为它做出了贡献?

  • Adobe 将决定如何使用 PhoneGap(专有版本)?他们会杀了它吗?增强它?添加如此引人注目的功能以至于大多数人选择它而不是 Cordova?

如果 Cordova 对您的应用程序有意义,请务必使用它。如果可以,请为它做出贡献,它将对您和世界其他地方变得更加有用。

【讨论】:

  • 正如我在下面对 Yusufs 所提到的,我要寻找的主要功能之一是 Core Graphics 和/或 Android 等价物。 Web 服务是另一个问题。 PG 是否可以使用 JSON 从 Web 服务获取信息并根据本机应用程序的需要导出数据?我确信还有其他库需要提及,但我现在能想到的只有这两个。
  • PhoneGap 让您可以使用 JavaScript 和 HTML 编写您的应用程序,它还可以让您调用本机应用程序以获得更多功能。您可以使用 Core Graphics 在本机代码中实现某些功能,然后从 JavaScript 驱动这些功能,但如果您的应用程序是图形密集型应用程序,那么 PhoneGap 可能不是正确的解决方案。您最好开始将它用于一个简单的项目以了解更多信息,以便您可以根据自己的经验做出选择。
【解决方案2】:

对于简单的应用,PG 不会影响性能。

PG 有很多但不是所有的原生函数。你总是可以写一个插件,但真的有谁愿意呢?

PG 最终可能会消失,但可能要等到您的应用消失之后。

【讨论】:

  • 我真正感兴趣的原生函数之一是 iOS 的 Core Graphics 方法。在 PhoneGap 网站上,它确实声明它支持“媒体”,但对我来说,这听起来更像是电影和图片,而不是使用核心图形进行自定义绘图。我也看到“网络”,但这并没有真正尖叫网络服务(JSON?)
  • @cspam,如果您有大量的图形需求,也许您可​​以摆脱 HTML5 中的新功能,但我不确定这些功能是如何在移动设备浏览器中采用的。由于您正在使用 html/javascript 制作应用程序,因此您可以使用 ajax 请求调用 Web 服务。如果您本身需要某些东西,您可以编写一个插件,但请记住,您需要为每个要构建/分发的移动平台提供一个插件。
  • @jlafay。感谢您带来插件。如果您需要编写一个插件,因为 PG 没有提供您需要的功能并且就像您说的那样,您需要为您所针对的每个设备编写插件......那么并没有破坏不必单独编写的目的每个平台的本地代码片段?如果您最终不得不编写 3 或 4 个插件怎么办?那么这可能是您必须编写的 8 段不同的代码。在某些时候,从原生开始会更容易。
  • 编写插件的唯一原因是,如果您已经拥有来自其他项目的大量 HTML5 代码,并且只缺少一个原生函数来完成您出色的应用程序。
  • @YusufX,是的,这绝对取决于您想做什么,并且在考虑 PG 时要牢记这一点。由于这个问题非常开放和高层次,很难说需要使用什么。
猜你喜欢
  • 2011-05-25
  • 2013-07-09
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
相关资源
最近更新 更多