Iphone Sencha如何触摸&x2B;PhoneGap在速度方面与本机应用程序相比表现如何?

Iphone Sencha如何触摸&x2B;PhoneGap在速度方面与本机应用程序相比表现如何?,iphone,ios,performance,cordova,sencha-touch,Iphone,Ios,Performance,Cordova,Sencha Touch,我真的很担心,当我用SenchaTouch编写iPhone应用程序并将其放入PhoneGap容器中时,用户体验会下降 我特别看到了以下方面的瓶颈: 流畅的屏幕过渡(动画) 滚动流畅 请记住,很多运行在iOS 4.x上的3G iPhone速度非常慢。我放弃了对原始iPhone的支持 一、 作为一名训练有素的UI专业人士,只需触摸ST应用程序中的几件东西就可以发现它 从Safari到PhoneGap容器的转变是否提高了性能 你对此有什么经验吗?我没有使用过ST或PhoneGap,但我使用过用它们

我真的很担心,当我用SenchaTouch编写iPhone应用程序并将其放入PhoneGap容器中时,用户体验会下降

我特别看到了以下方面的瓶颈:

  • 流畅的屏幕过渡(动画)
  • 滚动流畅
请记住,很多运行在iOS 4.x上的3G iPhone速度非常慢。我放弃了对原始iPhone的支持

一、 作为一名训练有素的UI专业人士,只需触摸ST应用程序中的几件东西就可以发现它

从Safari到PhoneGap容器的转变是否提高了性能


你对此有什么经验吗?

我没有使用过ST或PhoneGap,但我使用过用它们构建的应用程序。我可以肯定地说,在我的3GS中,对应用程序的体验是最糟糕的。如果你正在计划一个演示、原型或测试,你可以放心使用它们。但是,如果您想制作具有竞争性UI/UX的应用程序,则不应这样做。 (即使你想制作原型,最好有一些论文)

对于你的问题,速度。这绝对是不可比的。HTML+CSS是一个功能丰富、易于使用的框架。当然,它既慢又容易。大多数基于HTML的UI工具只使用
UIWebView
,这是本机框架的一部分。事实上,
UIWebView
本身就是移动Safari。因此,这些工具的性能永远不会比Mobile Safari更好。如果您想检查动画的性能,只需访问Mobile Safari即可。我检查了showcase没有一个运行平稳,即使其中许多不需要强大的图形功能

本机应用程序采用几十年来专业研究的尖端技术进行编译和优化。还有很多选项可以调整和调优代码以提高性能。然而,其中有一些应用于HTML因为HTML应该始终保证功能丰富、易于使用的框架。大多数优化(使性能提高)都是在功能和简单性之间进行权衡。

不过,在iOS 4.3中,Mobile Safari的性能有所提高。但我不认为这对有闪亮UI的应用程序有什么意义

我看到了一个相当大的带有JavaScript的图形框架。事实上,这是一个用JavaScript编写脚本的游戏框架。因此,它与HTML或CSS无关。(我忘了它的名字,但它是不完整的产品)

附言

你还有一个重要的原因。用户界面的行为不一致。这些框架模仿iOS的本机UI,但不完整。因此,这让人感觉不舒服,就像模仿模仿品牌一样。 但是,如果您不想要本机UI,就不需要关心它

编辑 我回答这个问题已经很久了,但我意识到我还必须提到GC。JavaScript是基于GC的语言。这意味着,它有不可预测的GC时间,这使得主线程停止。这使得用户界面很困难。在本机实现上,您可以控制是否使用GC

这在Android上不会有问题。Android总是让那些人因为Java上的GC而苦苦挣扎。因此,用户不会感觉到任何差异。但在iOS上,您基于HTML5的应用程序提供的体验永远不会比竞争对手的本地应用程序更好


对于这个GC时间问题,有许多解决方法。如增量GC、实时GC等。但实际上,没有真正的解决办法。因为最基本的问题是你没有控制权。

我发现即使在PhoneGap之外,ST应用程序的性能也很差。

在撰写本文时,我会说:对于没有高要求图形的实体模型和快速应用程序来说很好

但随着时间的推移,事情可能会发生变化,因为这两个项目(PhoneGap和Sencha Touch)都在日复一日地改善

硬件功能越来越强大(iPhone4、5、…、双臂cpu……),因此基于ST和PhoneGap的应用程序将有一段时间性能接近本机应用程序,这可能比预期的要快


因此,请密切关注这些项目,并继续与它们一起开发“基本”应用程序,以测试它们的性能

我用Sencha Touch构建了一个商业应用程序,有PhoneGap也有PhoneGap。任何主要的性能影响都来自Sencha Touch(1.x或2),而不是PhoneGap。正如Eonil所解释的,这是因为PhoneGap实际上使用的是本机浏览器。我注意到iPhone4上的ST性能“足够好”(我认为3GS与iOS4.3+兼容;取决于用户的期望)。在Android上,只有真正最新的设备才适合ST1.1,但ST2关注的是Android的性能。我相信Sencha将继续创新并推动绩效,因为他们的业务依赖于此

如果您确实使用Sencha Touch(或任何JavaScript),请确保使用小型(-debug)版本


我也在iOS和Android上构建了一些微不足道的本地应用程序,事实上,两者之间没有可比性;native的速度要快得多。

事实证明,在任何Web应用程序(包括所有ST2应用程序)周围放置PhoneGap包装实际上都会大大降低其性能。这是因为它使用的UIWebView实际上与iOS的Safari浏览器不同,后者有许多增强功能,使其性能更高。这背后的一个原因是,到目前为止,Safari使用了速度非常快的“Nitro”JavaScript引擎,这在PhoneGap使用的UIWebView上是不可用的(尽管如此)

一些人已经对性能进行了试验,以了解其影响,一人查看了的性能,另一人查看了


事实证明,嵌入式用户界面浏览器可能比Andriod浏览器更糟糕

我已经用ST2制作了几个应用程序,并为native打包。 你当然可以比较这两种动物,但是它们是非常不同的动物

简单地说,如果你的Sencha应用程序在Safari和Android Stock中表现良好,它也会以类似的方式表现出来