HTML5与原生应用程序:该选择哪个?

14
这个问题非常流行,已经有很多相关的问题了。但其中一些已经过时了(比如6个月前),对于当前日期 - 2012年5月...如果您可以列出哪一个现在更好,那将是很棒的!
我正在开发一些应用程序,跨平台功能在这里非常重要。我想知道以下功能是否可以使用HTML5。
1. 在我的应用程序中创建音乐播放器(需要读取所有播放列表并播放)- HTML5(还是)本地? 2. 加速度计使用 - HTML5(还是)本地? 3. 摄像头使用 - HTML5(还是)本地? 4. 使用手势(swype等)- HTML5(还是)本地? 5. 多点触控和手势 - HTML5(还是)本地? 6. 开发带物理效果的3D游戏(或2.5D)- HTML5(还是)本地?(本地可能是最好的选择,但我很想知道HTML5在多平台游戏开发中的表现如何)
如果您可以用正确的答案对选项进行编号,并说明为什么我必须使用本地/ HTML5,那将是很棒的 :)
此外,您对Phone-Gap的本地支持有什么想法?
2个回答

16

创建一个音乐播放器在我的应用程序中 - 两者都可以。但HTML5可能会比较繁琐。

加速度计的使用 - 原生应用。HTML5不支持它。

相机的使用 - 原生应用。HTML5不支持它。

手势的使用 - 原生应用。HTML5可以支持,但需要使用外部库。

多点触控和手势功能 - 我建议使用原生应用,开发更容易。

开发3D游戏(或)带物理效果的2.5D游戏 - 两种方式都可以,现在有一些很好的库可供使用。然而,在HTML5中实现想要的功能可能并不容易。

总体来说,HTML5让您有可能编写一次代码,然后纳闷着它是否在各个系统中都能以同样的方式工作。原生应用需要为每个平台进行特定的开发,并且需要处理维护不同成熟度软件的成本和问题。

然而,如果您不需要特定的功能,请使用HTML5。目前为止,编写HTML5的代码还有点繁琐,但是可用库的质量和数量每天都在增加。使用CoffeeScript,它会为您节省很多麻烦。

如果您的应用程序考虑了响应式设计,您还可以支持计算机、平板电脑和智能手机在一个应用程序中。


3
我会选择使用本地语言来实现所有这些功能。 - jbduzan
1
好的回答 - 我可以补充一下,HTML5音频和HTML5视频并不支持所有设备 - 例如,某些设备和浏览器不支持mp3或其他格式。否则,在近两年的移动开发中,这个问题很适合解决...看看Titanium,他们很快就要进入Windows Mobile了 - 不过,如果你的公司有预算、时间、开发人员和项目像游戏一样复杂的话 - 对于苹果,使用cocoa,对于Android,使用Java,对于WP7,使用c# - 像愤怒的小鸟一样分别发布平台版本。 - AlphaApp
很棒的回答!PhoneGap似乎在这些问题上有所发挥-http://docs.phonegap.com/en/1.7.0/index.html。你对此有什么看法? - Legolas
2
相机使用需要原生吗?我认为如果你使用PhoneGap它可以工作。 - Code Droid
我们在使用PhoneGap时遇到了性能问题,正如这里所有回答者所说,这取决于您的应用程序有多复杂。 - Chris

16

除非您的应用程序非常简单,否则请避免使用所谓的跨平台解决方案,并为每个平台构建本地应用。如果这样做,您将会感激不已。

如果不这样做,那么当某些设备出现问题而其他设备没有问题时,或者当您收到添加某些设备不支持的功能的请求时,您将会非常抱歉。

基本上,使用跨平台解决方案是最低公共分母/仅适用于简单应用程序/在我个人的经验中是一种虚假经济。

这只是我谦虚的意见,基于12年以上商业软件开发和尝试两种方法的经验。


PhoneGap似乎利用了这些问题- http://docs.phonegap.com/en/1.7.0/index.html。你对此有什么看法? - Legolas
2
我认为我会期望PhoneGap文档与我有不同的观点,因为他们试图“销售”PhoneGap。我也认为,理智的做法是意识到跨平台的“解决方案”将无法在最新和最伟大的功能发布后立即支持它们。 - ader
我明白你的意思。我只是想知道PhoneGap是如何实现原生能力的。但是,是的,你说得有道理 :) 谢谢! - Legolas
跨平台不等于非本地!许多3D游戏是跨平台和本地的。在某些框架和语言中,您可以将应用程序构建为本地应用程序,并获得出色的功能和硬件控制。这种跨平台框架的一个例子是<Qt>。它使用自己的C++库,并提供出色的性能和对硬件的控制。我使用Qt开发了一些Android应用程序,它确实带来了一些困难和许多优点。因此,我认为您选择了一个不好的跨平台应用程序开发选项。看看其他跨平台选项 :) - S.M.Mousavi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接