HTML5与原生应用程序:select哪个?

这个问题相当受欢迎,而且已经有很多问题了。 但其中一些是旧的(比如6个月前),而对于目前的date – 2012年5月…如果你能够列出哪一个更好,那将是非常棒的!

我现在正在开发一些应用程序,跨平台function在这里是一个重要的事情。 我想知道是否可以使用HTML5的以下function。

  1. 在我的应用程序中创build一个音乐播放器 (将需要读取所有播放列表并播放它们) – HTML5(或)Native?

  2. 加速计使用情况 – HTML5(或)Native?

  3. 相机使用情况 – HTML5(或)Native?

  4. 使用手势 (swype等) – HTML5(或)Native?

  5. 多点触摸function和手势 – HTML5(或)本机?

  6. 用物理开发3D游戏 (或)2.5D – HTML5(或)Native? (原生可能是这里最好的交易,但我很好奇知道HTML5将在多平台游戏开发中做什么)

如果你可以用正确的答案编号的选项,并给出为什么我将不得不使用native / html5的原因,这将是真棒:)


另外,您对Phone-Gap的本地支持有什么想法?

Solutions Collecting From Web of "HTML5与原生应用程序:select哪个?"

在我的应用程序中创build音乐播放器 – 两者。 HTML5可能很乏味。

加速度计使用 – 本机。 Html5将不支持它

相机使用 – 本机。 Html5将不支持它

使用手势 – 本机。 Html5可以支持它,但你必须使用外部库

多点触摸function和手势 – 我会说原生的,为了便于开发

使用物理学开发3D游戏(或)2.5D – 两种系统都可以使用一些优秀的库。 但是,在HTML5中做你想做的事情目前可能并不容易。

更一般地说,HTML5使您可以为每个系统编写一次代码,然后怀疑它是否会以相同的方式在任何地方工作。 原生应用程序需要针对每个平台进行特定的开发,其成本和维护许多软件处于不同成熟阶段的问题。

但是,如果您不需要特定的function,请使用HTML5。 到目前为止,编写代码仍然有点乏味,但是可用库的质量和数量每天都在增加。 使用CoffeeScript ,它会为您节省头痛。

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

除非您的应用程序非常简单,否则应避免使用所谓的跨平台解决scheme,并为每个平台构build本机。 如果你这样做,你会很高兴。

如果您不这样做,那么当某些设备上的某些设备发生故障时,或者您收到某些设备不支持的某些function的请求时,您会非常抱歉。

基本上使用跨平台的解决scheme是最低的共同点/只适用于我的经验简单的应用程序/虚假的经济。

基于12年以上的商业软件开发经验和自己尝试这两种方法的经验,我的意见不甚明确。