Objective-C vs PhoneGap

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

但是你可以使用jQTouchjQMobilePhoneGap等来完成大部分的工作。

题:

什么时候适合或适合使用本地平台?

  1. PhoneGap本质上是一个包装,所以它总是会落后于最新的function,除了可能在一些边缘情况下有错误。
  2. 并不是所有的平台function都可以在PhoneGap中使用,所以在决定使用它之前,您需要知道什么是不受支持的。
  3. 大多数硬件加速function将永远不可用,所以如果你想用高端显卡制作高级游戏,那么这样做不太好。
  4. 执行开箱即用的自定义模块所需的维护实际上可能比开发本机花费更多的时间。
  5. 你真的需要在两个以上的移动操作系统上运行吗? 为iOS和Android写作将给你一个相当大的市场覆盖面,所以你可能会更好的本地化。

PhoneGap是专为更简单的networking应用程序,数据驱动的应用程序和需要连接工作的社交应用程序。 如果您的应用程序变得stream行,并且您需要支持更多function,您最终可能会用本机语言重写应用程序,但是如果您可以在多个设备上快速启动一个创意,那么您在市场上具有竞争优势。

如果您需要为多个移动平台开发应用程序,请尽可能以最小的努力(例如实施一次),使用PhoneGap或类似软件。 这些框架提供了“最低公分母”types的环境,因此您经常无法访问本地平台的function。

另一方面,如果您只是为iOS开发一个应用程序,那么通过一切手段,在Objective-C中开发它作为本地应用程序。 然后您可以使用该平台的完整SDK和function! 当然,这是苹果推荐的开发iOS应用程序的最佳实践!

根据我自己的经验,在join我的公司之前,我曾与我的CTO进行过交谈,讨论我们是应该为我们的平台开发原生应用还是使用PhoneGap。 我们同意开发原生应用程序是一条可行的路,因为我们可以利用每个平台的特定function。 除此之外,本地应用程序将在平台上提供更好的用户体验,因为它将更像用户可能熟悉的其他本机应用程序。 想想最后的想法。 想想你喜欢的所有应用程序。 作为一名开发人员,您可以快速地告诉他们哪些是本地的,哪些不是,只要使用它们即可。 您认为哪一种可以提供更好的用户体验? 有什么想法。 🙂

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

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

用于跨移动兼容性的大型数据存储将成为电话问题。 如果您需要应用程序存储至less10 MB的数据(媒体文件,文件等),您将受到2-5mb或localStorage或caching清单的限制。 在这里看到我的相关问题:

html5存储大于50 MB的数据?

我尝试过phonegap,第一件让我恼火的事情是,你不能控制键盘,就像你在obj-c中习惯的那样。 键盘与浏览网站时完全相同,键盘顶部有一个额外的“下一个/上一个”button。 因此,我现在尝试使用Titanium Appcelerator,而不是使用JavaScript来创build原生GUI。

我认为,如果在你学习或使用Objective-C的能力范围内,这样做几乎总是最好的。 使用native-SDK可以以最可兼容的方式访问设备上的所有内容。 使用抽象层仅损害function,可定制性和debugging。

也就是说,似乎有一些function强大且编写良好的框架可以将HTML,CSS和JS编译为本地应用程序。 如果你不是一个非常紧凑的时间表,或者如果你需要一个快速的原型,那么这可能是适当的,而你是一个JavaScript忍者,而是一个新手Objective-C编码器。