我正计划为多种操作系统(包括 Android、IOS、WindowsPhone)开发一个移动应用程序(我的第一个应用程序) - 在狂野的互联网上,我发现了一个名为 phonegap 的框架,作为最小化开发过程的一种可能的解决方案。 我了解 phonegap 的优势 - 但找不到真正的缺点...... 1.) 那么问题是为什么我不应该使用 phonegap?
2.) phonegap 只是更慢,因为它被包裹在操作系统中,如果是的话,慢了多少?我的意思是你能真正说出原生应用程序和 phonegap 之间的区别,还是只是当您需要硬件加速时速度较慢,例如玩游戏?
有关该项目的更多信息。目前我有几个“.Net”服务和提供者,通过 WCF 进行通信。应用应该能够从服务接收和发送视频流和音频数据,就像提供者那样。
3.) 是否可以为此使用 phonegap,还是我应该坚持使用 native 应用程序?
最佳答案
所有跨平台框架(包括 HTML)通常都具有相同的优点和缺点。
优点:
- 编写一次代码,在每个目标平台上都可以正常工作。
缺点:
- 它的工作方式通常不是那么美妙。
- 性能通常低于原生实现。
- 有些还有自己的小部件集,看起来不合适。
- 由于各个平台的怪癖,您仍然需要到处进行测试。
- 您可以获得对功能的最低公分母访问权限。当支持原生特性时,通常只能通过一种方式访问它:可移植框架的方式。这有时与目标平台的首选方式不一致。
- 如果您可以访问目标平台独有的功能,您将失去随处运行的可移植性。
- 每个所谓的“跨平台”框架本身就是一个平台。请参阅前面关于怪癖的观点:现在,您不必了解 N 个平台,而是必须了解 N+1。
为了获得针对多个平台的最佳结果,我建议如下:
使用定义明确的 API 简洁地设计您的核心逻辑(不使用任何 UI 的部分)。使其足够通用,以便在环境之间相当容易地移植。 (SQLite 在 Objective C 和 Java 中真的有那么不同吗?)
按照目标平台的最佳做法设计您的 UI,使其在每个平台上看起来都很棒(并且适合)。 (对于 Android,请参阅 http://developer.android.com/design )让 UI 通过您创建的 API 与核心逻辑进行交互。
关于android - 什么时候最好不要使用Phonegap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829551/