使用Phonegap进行本机应用程序开发

时间:2011-03-01 22:09:04

标签: iphone android html5 cordova

我最近遇到了Phonegap。有没有人尝试过。它是一个令人难以置信的工具,声称开发人员可以同时使用基于HTML 5的框架,如Sencha touch和Jquery 可以访问手机上的本机功能。此外,代码可以通过一些努力从Android移植到Iphone。在我深入研究之前,我想知道论坛对Phonegap的体验是什么。有哪些难点,它对于企业级应用程序开发是否真正可扩展。

7 个答案:

答案 0 :(得分:95)

我使用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。对每个代码库进行微调。

答案 1 :(得分:52)

以下是我为PhoneGap阅读的所有最佳性能指南...有很多要警惕,以确保您拥有稳定,稳定的性能......但是您可以在一天晚上阅读它

以下是最好的掘金:

PhoneGap /移动网络性能提示

启用新功能

建筑

在Ext JS 4中构建您的应用程序:http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

答案 2 :(得分:29)

在表达我对Phonegap的看法之前,我需要发布一个免责声明,说我绝不是一个网络开发者。对我来说,编写JavaScript和CSS就像拔牙一样。那就是说,我不喜欢Phonegap。

该框架有一些非常吸引人的方面,主要是“一次写入 - 运行 - 任意”的吸引力和“我不想学习 - 目标-C?”上诉。该框架甚至可以让您访问加速度计等一些硬件功能。所有这些在某种程度上都是有效的。

也就是说,没有一个伟大的iOS应用程序是使用任何类型的跨平台框架构建的。本机UIKit控件为您处理了许多微妙而优雅的UI交互,许多用户和开发人员都会理所当然地将它们丢失,直到它们丢失为止,例如大量令人难以置信的详细视图动画曲线和不存在的滚动弹跳在基于Web视图的UI中。你可以努力完美地复制它们,但是为了那个时候的投资,为什么不去本土呢?

第二点需要注意的是,Phonegap构建的iOS应用程序的支持社区比本机开发的应用程序要小得多。如果你是一个在项目期间依赖社区的人,这也应该让你停下来。

最终归结为您想要提供的体验质量。 Phonegap的上限较低。如果您准备接受不太优秀的用户体验以换取更少的开发时间和更高的可移植性,那么它就是一个非常可行的框架。

作为任何感兴趣的人的潜台词,Marco Arment和Dan Benjamin最近讨论了这个话题。你可以听它here

答案 3 :(得分:4)

安装过程涉及许多软件包(Java,Apache Ant,Ruby,iOS SDK,Android SDK和PhoneGap本身),这些软件包都必须正确安装和设置。这可能是一项重大努力。公平地说,他们有一些名为PhoneGap Build in beta的东西应该会让这更容易。

我们将它与NS Basic / App Studio一起使用,以生成符合应用商店资格的应用。

答案 4 :(得分:2)

如果您不是制作游戏或小部件,只是简单漂亮的应用程序,那么您可以选择phonegap。

但你应该小心你的JS,避免在JS中做任何事情 例如,如果你想做任何动画避免设置一个小间隔(例如100毫秒)的计时器,避免使用jquery和类似的动画。例如,通过设置一个短周期计时器逐步降低每个点的不透明度(这就是jquery淡入淡出的工作方式)来代替动画淡化,你应该使用从不透明度1到不透明度0的css3过渡。

我的建议是使用类似zeptojs.com之类的东西,毕竟phonegap不会运行ie6: - )

查看一些有关如何使JS更轻的教程

http://bcksp.blogspot.com/

答案 5 :(得分:1)

如果您不需要HTML5和Phonegap提供的任何硬件功能或性能,封装的Web应用程序(以及对其他功能的一些有限访问权限)是一个很好的解决方案。

许多企业部署大型Web应用程序。 Phonegap(或只是带有嵌入式内容的普通Web视图控件)将允许您脱机运行这些Web应用程序(当然,除了所需的任何在线数据)。

答案 6 :(得分:0)

在多个不同设备之间部署时未提及的一个“痛苦”:设备越多,学习曲线越大。要使用PhoneGap部署到iOS设备,您需要在Mac上学习Xcode的基础知识。要部署到Android,您需要安装和学习Eclipse,Android SDK等。其他平台需要使用自己的SDK。学习一些基本的Xcode,Javascript和Java可以帮助我理解错误和一般语法。

“创建一次,随处部署”,省去了很多步骤!