就目前的情况而言,此问题不适合我们的问答格式。我们希望答案能得到事实、参考资料或专业知识的支持,但此问题可能会引发辩论、争论、民意调查或广泛讨论。如果您认为此问题可以改进并可能重新讨论,请访问visit the help center以获取指导。
九年前就关门了。
我最近遇到了Phonegap。你们中的任何人都尝试过它。它是一个令人难以置信的工具,声称开发人员可以使用基于HTML 5的框架,如Sencha触摸和Jquery在同一时间访问手机上的本地功能。此外,代码是从Android移植到iPhone的一些努力。在我陷入它之前,我想知道什么是论坛的经验与Phonegap。有哪些棘手问题,它是否真的可以扩展到企业级应用程序开发。
7条答案
按热度按时间waxmsbnn1#
我已经用PhoneGap开发了几个应用程序,就它所提供的功能而言,它非常棒。我想指出几点,可能会对你有所帮助。
Disable device-based features you're not using
默认情况下,加速计和地理定位功能是打开的。如果你不使用它们,我会将它们关闭,因为你的应用将加载更快(初始化),运行更顺畅。onDeviceReady
-这是phonegap加载并准备就绪后调用的方法。$(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应用商店发布的应用程序,我会阅读他们详尽的应用程序开发指南列表。例如,在上面的工具链接中,有一个名为Easy APNS的“工具/插件”--虽然这对Android很有用--而且技术上可以在iPhone上实现,但它违反了开发协议。正如它所指出的,你必须使用苹果通知网络,等等。这只是一个例子,但阅读有关的东西将保存你很多头痛,如果这是你的最终目标。总的来说,它非常适合轻量级应用程序,特别是如果你有网络开发背景的话,LocalStorage,GeoLocation等都非常好用。
其他编辑:
我真的认为这取决于你想做什么,以及你知道如何做。马特指出,开发原生应用程序,为iOS更好,等等。是的,如果你有时间和知识来学习这一点-当然原生会更好。但PhoneGap是为网络开发人员,可以利用他们现有的技能组合和建立应用程序。此外,PhoneGap允许你快速建立应用程序,为iOS,安卓,塞班,掌上电脑,黑莓手机。每一个都有轻微的代码调整。
vktxenjb2#
以下是我为PhoneGap阅读过的所有最佳性能指南......要确保您拥有坚实、稳定的性能,需要警惕的地方很多......但您可以在一个晚上的阅读中全部了解。
以下是最好的掘金:
PhoneGap/移动的Web性能提示
启用新功能
建筑
在Ext JS 4中构建您的应用:http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
tzxcd3kk3#
在表达我对Phonegap的看法之前,我需要发表一个小小的免责声明,声明我绝不是一个网页开发人员。对我来说,编写JavaScript和CSS就像拔牙一样。也就是说,我不喜欢Phonegap。
这个框架有几个非常吸引人的方面,主要是“Write-Once-Run-Anywere”和“我不必学习Objective-C?”。这个框架甚至可以给予你访问一些硬件特性,比如加速计。在某种程度上,所有这些都是有效的。
也就是说,没有一款出色的iOS应用是使用任何类型的跨平台框架构建的。有太多微妙而优雅的UI交互是由原生UIKit控件为你处理的,许多用户和开发者认为这是理所当然的,直到他们错过了。比如大量令人难以置信的详细视图动画曲线和滚动反弹,这些在基于Web视图的UI中是没有的。你可以辛苦地把它们完美地复制出来,但为了投入时间,为什么不干脆原生呢?
需要注意的第二点是,Phonecap构建的iOS应用程序的支持社区比原生开发的应用程序要小得多。如果你是一个在项目期间依赖社区的人,这也应该给予你停下来。
最后,这取决于你想要提供的体验质量。Phonegap的上限较低。如果你准备接受一个不太出色的用户体验,以换取减少开发时间和提高可移植性,那么它是一个非常可行的框架。
对于任何感兴趣的人来说,Marco Arment和Dan Benjamin最近讨论了这个主题,你可以听一听。
9rnv2umw4#
安装过程涉及许多软件包(Java、Apache Ant、Ruby、iOS SDK、Android SDK和PhoneGap本身),所有这些软件包都必须正确安装和设置。这可能是一项重大工作。公平地说,他们有一个名为PhoneGap Build的测试版,应该会让这件事变得容易得多。
我们将其与NS Basic/App Studio配合使用,以生成符合应用商店条件的应用。
dm7nw8vv5#
如果你不是在做游戏,也不是小工具,只是普通的好看的应用程序,那么phonegap是你的选择。
但是你应该小心你的JS,避免在JS中做任何事情,例如,如果你想做任何动画,避免设置一个小间隔的计时器(例如100毫秒),避免jquery和类似的动画。例如,设置一个短时间计时器,逐步减少每个点的不透明度,而不是动画淡入淡出(这就是jquery fade的工作原理),你应该使用css3从opacity 1到opacity 0的过渡。
我的建议是使用类似www.example.com的网站zeptojs.com,毕竟phonegap不会运行ie6:-)
检查一些教程如何使您的JS更轻
http://bcksp.blogspot.com/
ukxgm1gy6#
如果你不需要HTML5和Phonegap提供的任何硬件功能或性能,封装的Web应用程序(加上一些对其他功能的有限访问)是一个很好的解决方案。
许多企业都部署了大规模的web应用,Phonegap(或者只是一个嵌入内容的普通web视图控件)将允许你离线运行这些web应用(当然,需要在线数据的情况除外)。
0s7z1bwu7#
在多个不同设备之间部署时未提及的一个“难题”:设备越多,学习曲线就越长。要将PhoneGap部署到iOS设备上,你需要在Mac上学习Xcode的基础知识。要部署到Android上,你需要安装和学习Eclipse、Android SDK等。其他平台要求使用自己的SDK。学习一些基本的Xcode、Javascript和Java有助于我理解错误和一般语法。
“一次创建,随处部署”遗漏了很多步骤!