Answers:
我已经使用PhoneGap构建了几个应用程序,并且它提供的功能很棒。我想指出一些快速提示,这可能对您有所帮助。
Disable device-based features you're not using
加速度计,地理位置功能默认情况下处于打开状态。如果您不使用它们,我会关闭它们,因为您的应用程序将加载(初始化)并运行得更流畅。
onDeviceReady
-这是在电话间隙加载并准备就绪后调用的方法。$(document).ready或您惯用的任何方法在这里实际上并不适用-除非您只在做界面/硬编码的HTML东西。如果您要与iPhone功能(如GeoLocation)进行交互,则在调用onDeviceReady 之后需要进行所有操作。
Pick a UI/library
界面/库,jquery-mobile,sencha touch,jqtouch等都有很多选项。这些选项均提供了独特的方法和功能集。做一些研究并使用它,但要避免合并。您可以在此处了解更多选项和工具:http : //www.phonegap.com/tool(更新链接)
Also, more on just mobile development in general, with PhoneGap
如果您要构建通过Android市场和iPhone App Store分发的应用程序,那么我会仔细阅读它们的详尽列表,以获取有关如何开发应用程序的指南。例如,在上面的工具链接中,有一个名为“ Easy APNS ”的“工具/插件” -尽管这对Android有用-并且在iPhone上在技术上可行,但它违反了开发协议,因为它指出您必须使用Apple通知网络等。这只是一个例子,但是如果您的最终目标是继续阅读下去,则可以省去很多麻烦。
总而言之,它对轻量级应用程序非常有用,特别是如果您来自Web开发背景。LocalStorage,GeoLocation等。效果很好。我希望这会有所帮助...并希望提出问题。
附加编辑:
我真的认为这取决于您想做什么以及您知道该怎么做。马特(Matt)指出,开发适用于iOS的本地应用程序会更好,等等。但是PhoneGap是为可以利用现有技能和构建应用程序的Web开发人员而开发的。此外,PhoneGap允许您快速构建适用于iOS,Android,Symbian,Palm和Blackberry的应用程序。对每个代码库进行较小的调整。
这是我为《 PhoneGap》阅读的所有最佳性能指南。为了确保您获得稳定,稳定的性能,请多加注意。
以下是最好的金块:
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
Sencha Touch的视频性能提示:http : //vimeo.com/17882927
Sencha Touch中的事件委派:如何设计一个监听者的列表,而不是每行一个。http://www.sencha.com/blog/event-delegation-in-sencha-touch/
在Ext JS 4中架构您的应用程序:http : //www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
在表达对Phonegap的看法之前,我需要发表一点免责声明,说我绝不是Web开发人员。对我来说,编写JavaScript和CSS就像在咬牙。就是说,我不喜欢Phonegap。
该框架有一些非常吸引人的方面,主要是“ Write-Once-Run-Anywere”呼吁和“ I-Don't-Have-To-Learn-Objective-C?”。上诉。该框架甚至可以让您访问某些硬件功能,例如加速度计。所有这些在一定程度上都是有效的。
也就是说,没有一款出色的iOS应用是使用任何类型的跨平台框架构建的。原生UIKit控件为您处理了许多微妙而优雅的UI交互,许多用户和开发人员将其视为理所当然,直到它们丢失为止,例如,大量令人难以置信的详细视图动画曲线和滚动跳动不存在在基于Web视图的UI中。您可以辛苦地复制它们,但是在那段时间里,为什么不花本钱?
要注意的第二点是,Phonegap构建的iOS应用程序的支持社区比本地开发的应用程序小得多。如果您在项目期间依赖社区,那也应该让您停下来。
最后,这取决于您要提供的体验质量。Phonegap的上限较低。如果您准备接受差强人意的用户体验以换取缩短的开发时间和增强的可移植性,那么它就是一个非常可行的框架。
作为感兴趣的潜台词,Marco Arment和Dan Benjamin最近讨论了该主题。你可以在这里听。
安装过程涉及许多软件包(Java,Apache Ant,Ruby,iOS SDK,Android SDK和PhoneGap本身),都必须正确安装和设置。这可能是一项巨大的努力。公平地说,他们在Beta版中有一个称为PhoneGap Build的东西,应该可以使此操作变得更加容易。
我们将其与NS Basic / App Studio结合使用来生产符合应用商店资格的应用。
如果您既不制作游戏,也不制作小部件,则只是简单漂亮的应用程序,然后选择phonegap。
但是您应该注意JS,避免在JS中执行任何操作,例如,如果要执行任何动画,则应避免以较小的间隔(例如100 ms)设置计时器,避免使用jquery和类似的动画。例如,与其通过设置一个短周期的计时器来逐步降低每个点的不透明度来动画化淡入(这是jquery淡入工作的方式),您应该使用从不透明度1到不透明度0的css3过渡。
我的建议是使用zeptojs.com之类的东西,毕竟所有的phonegap都不会运行ie6 :-)
查看一些有关如何使JS更轻巧的教程