什么时候最好不要使用Phonegap?

Mat*_*ias 32 wcf android ios cordova

我计划为多个操作系统(包括Android,IOS,WindowsPhone)开发一个移动应用程序(我的第一个) - 在野外互联网中,我找到了一个名为phonegap的框架,作为最小化开发过程的可能性解决方案.我理解phonegap的优点 - 但找不到真正的缺点... 1.)所以问题是为什么我不应该使用phonegap?

2.)phonegap是否只是速度慢,因为它包含在操作系统内部,如果是的话要慢多少?我的意思是你真的可以告诉原生应用和手机之间的差异,或者只是在你需要硬件加速时才会更慢,例如游戏?

关于该项目的一些信息.目前我有几个'.Net'服务和提供商,通过WCF进行通信.应用程序应该能够从服务接收和发送视频流和音频数据,例如提供商可以做的.

3.)是否可以使用phonegap,或者我应该坚持本机应用程序?

Spa*_*rky 40

所有跨平台框架(包括HTML)通常具有相同的优点和缺点.

好处:

  • 在每个目标平台上编写一次相同的代码.

缺点:

  • 它的工作方式往往不是那么精彩.
  • 通常比本机实现性能更低.
  • 有些还有自己的小部件集,看起来不合适.
  • 由于个别平台的怪癖,你仍然需要到处测试.
  • 您可以获得功能最低的通用分母访问权限.当支持本机功能时,通常只能以一种方式访问​​它:可移植框架的方式.这有时与目标平台的首选方式不一致.
  • 如果您可以访问目标平台独有的功能,则会失去运行无处不在的可移植性.
  • 每个所谓的"跨平台"框架本身就是一个平台.请参阅前面关于怪癖的观点:现在,您不必知道N个平台,而是必须知道N + 1.

为了获得针对多个平台的最佳结果,我建议如下:

使用定义良好的API,干净地设计您的核心逻辑(不使用任何UI的部分).使其足够通用,可以在环境之间轻松移植.(在Objective C与Java中SQLite真的不同吗?)

根据目标平台的最佳实践设计您的UI,使其在每个平台上看起来很棒(并且适合).(对于Android,请参阅http://developer.android.com/design)让UI通过您创建的API与核心逻辑进行交互.


Rya*_*anG 16

我已经开发了本机和HTML包装器,如Phonegap.虽然Phonegap可以减少必须使用2-3种不同语言进行编码,并且可以对2-3个代码库进行更改,但是如果您希望有一个人们想要使用的应用程序,那就是本机.我实际上只是在Phonegap中开发一个应用程序,并最终用本机代码重写它,因为它对于期望来说还不够好.

虽然你的游戏或应用程序对于HTML包装应用程序来说可能很棒,但最终用户只会注意到加载和反应时间较慢,即使它们非常轻微.

IMO Phonegap应仅用于进行非常少量数据操作(显示和编辑)的应用程序,在这些应用程序中不进行强烈处理(即游戏).

应用程序市场极具竞争力,您看到的所有大型顶级应用程序和游戏都是本机代码(这是有原因的).


小智 11

Adobe的AIR平台是phonegap的绝佳替代品,可以在任何地方进行部署,而不是本机应用.它还具有出色的硬件加速功能.它包含一个webkit实现,因此您可以根据需要使用Web标准,并且开源apache flex项目提供了很多.Flash构建器是基于eclipse的优秀编码环境.除了游戏方面的巨大进步外,我们很快就会看到更多数据驱动的AIR应用程序.As3是面向对象的,非常好用,加上flash专业版的动画插图和Photoshop的大量工具集都是世界级的.