Objective-C vs PhoneGap [关闭]

Posted

技术标签:

【中文标题】Objective-C vs PhoneGap [关闭]【英文标题】:Objective-C vs PhoneGap [closed] 【发布时间】:2011-08-11 13:33:44 【问题描述】:

有多种开发 ios 应用程序的方法。我喜欢用 Objective-C 编程来制作我的 iOS 应用程序。

但是您可以使用jQTouchjQMobilePhoneGap 等来完成大部分操作。

问题:

什么时候适合使用原生平台?

【问题讨论】:

这似乎是更适合programmers.stackexchange.com 的讨论(我的近距离投票只是为了迁移) 【参考方案1】:
    PhoneGap 本质上是一个包装器,因此除了在某些边缘情况下可能存在错误外,它总是会落后于最新功能。 并非所有平台功能都将在 PhoneGap 中可用,因此您需要在决定使用它之前了解哪些功能不受支持。 大多数硬件加速功能永远不会完全可用,因此,如果您想制作具有高端图形的高级游戏,它不会很好地工作。 执行现成不可用的自定义模块所需的维护实际上可能比开发原生模块需要更多时间。 您真的需要在超过 2 个移动操作系统上运行吗?为 iOS 和 android 编写代码将为您提供相当大的市场覆盖率,因此您最好还是使用原生代码。

PhoneGap 专为更简单的网络应用、数据驱动的应用和需要连接才能工作的社交应用而设计。如果您的应用程序变得流行并且您需要支持更多功能,您最终可能会用本地语言重写应用程序,但如果您可以在多种设备上快速启动一个想法,那么您在市场上就具有竞争优势。

【讨论】:

【参考方案2】:

如果您需要以最少的工作量(即实施一次)快速地为多个移动平台开发应用程序,请使用 PhoneGap 或类似工具。这些框架提供了“最小公分母”类型的环境,因此您经常无法访问本机平台的功能。

另一方面,如果您只为 iOS 开发应用程序,那么请务必在 Objective-C 中将其开发为原生应用程序。然后,您可以随意使用该平台的完整 SDK 和功能!当然,这是 Apple 推荐的开发 iOS 应用的最佳实践!

根据我自己的经验,在我加入公司之前,我曾与我的 CTO 进行过一次谈话,讨论我们是否应该为我们的平台开发原生应用程序或使用 PhoneGap。我们同意开发原生应用程序是可行的方法,因为我们可以利用每个平台的特定功能。除此之外,原生应用程序将在平台上提供更好的用户体验,因为它的行为更像用户可能熟悉的其他原生应用程序。想想最后一个想法。想想您喜欢的所有应用程序。作为开发人员,您可能只需使用它们就可以快速分辨出哪些是本机的,哪些不是。您认为哪个提供更好的用户体验?需要考虑的事情。 :-)

最后,这取决于你。你说你喜欢 Objective-C 编程。所以,去吧,去本土!另一方面,如果您有跨平台的愿望,并且您熟悉PhoneGap(或其他)或想了解它们,那就去吧! :-)

【讨论】:

【参考方案3】:

根据我的经验,所有 javascript 应用程序都比在本机平台上编写的应用程序慢。不是因为手机或 JavaScript,而是因为 DOM 元素的渲染。

【讨论】:

【参考方案4】:

用于跨移动兼容性的大数据存储将成为 phonegap 的问题。如果您需要应用程序存储至少 10 mb 的数据(媒体文件、文档等),您将受到 2-5mb 或 localStorage 或缓存清单的限制。在此处查看我的相关问题:

html5 to store greater than 50 mb worth of data?

【讨论】:

这是错误的。我的 iOS Phonegap 应用程序使用了数百兆字节。 这真的很酷。你能写博客或者解释你是怎么做到的吗?会帮我很多 卢克,您可能混淆了您可以在应用程序中发布的数据存储与混合/网络应用程序可以存储的数据。对于应用下载或创建的数据,该限制实际上是最大 2.5Mb。【参考方案5】:

我试过phonegap,第一件让我恼火的事情是你不能像在obj-c中那样控制键盘。键盘与浏览网站时的键盘完全相同,它在键盘顶部有一个额外的窗格,带有“下一个/上一个”按钮。 因此,我现在正在尝试 Titanium Appcelerator,您可以在其中使用 javascript 创建本机 GUI。

【讨论】:

【参考方案6】:

我认为,如果在您学习或使用 Objective-C 的能力范围内,那么这样做几乎总是最好的。使用本机 SDK,您可以以最兼容的方式访问设备上的所有内容。使用抽象层只会损害功能、可定制性和调试。

也就是说,似乎有一些功能强大且编写良好的框架可以将 HTML、CSS 和 JS 编译为原生应用程序。如果您的日程安排不是很紧,或者您需要快速制作原型,并且您是 JavaScript 忍者,但还是一名 Objective-C 编码新手,这可能是合适的。

【讨论】:

以上是关于Objective-C vs PhoneGap [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

你可以捆绑一个 Objective-C iPhone 应用程序和一个 HTML5 (PhoneGap) iPad 应用程序来制作一个通用应用程序吗?

Objective-C 到 JavaScript 调用没有发生

Objective C将数据发送到phonegap并调用javascript函数

InAppPurchase 插件无法从 Objective-C 执行 JS 回调

混合应用开发:Phonegap VS AppCan

Objective-C:断言 vs. 异常 vs. 错误