【问题标题】:Using Phonegap for Native Application development [closed]使用 Phonegap 进行本机应用程序开发 [关闭]
【发布时间】:2011-07-06 20:52:08
【问题描述】:

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

【问题讨论】:

    标签: iphone android html cordova


    【解决方案1】:

    我已经使用 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 App Store 分发的应用程序,我会阅读他们详尽的列表以获取有关如何开发您的应用程序的指南。例如,在上面的工具链接中,有一个名为 Easy APNS 的“工具/插件” - 虽然这对 Android 很有用 - 在 iPhone 上技术上可行,但它违反了开发协议,因为它规定您必须使用 Apple通知网络等。这只是一个示例,但是如果这是您的最终目标,那么阅读这些内容将为您省去很多麻烦。

    总而言之,它非常适合轻量级应用,尤其是如果您有 Web 开发背景。 LocalStorage、GeoLocation 等。效果非常好。我希望这会有所帮助......并感觉提出问题。

    其他编辑:

    我真的认为这取决于您想做什么,以及您知道如何做。 Matt 指出,为 iOS 开发原生应用程序会更好,等等。是的,如果你有时间和知识来学习 - 当然原生会更好。但是 PhoneGap 是为那些可以利用他们现有的技能并构建应用程序的 Web 开发人员而设计的。此外,PhoneGap 允许您快速构建适用于 iOS、Android、Symbian、Palm、Blackberry 的应用程序。对每个代码库进行细微调整。

    【讨论】:

    • Phonegap 上的开发者似乎存在分歧。
    • 如果在一天结束时,您有时间和金钱来学习不同的语言来构建适用于 Android 和 iOS 的原生应用程序 - 那么一定要这样做 :) 但对于我们大多数人来说,使用我们知道要构建在多种设备上运行良好的应用程序,这是不费吹灰之力的。
    • easyapns 仅用于 iPhone 通知(不是 android),并且确实使用 Apple 通知网络,不确定您从哪里得到它违反开发者协议的想法..
    • 很好的解释.. 谢谢:)
    • 一个好的调试器是你最好的朋友。查看此远程调试 iOS:stackoverflow.com/questions/7242997/…
    【解决方案2】:

    这里是我读过的关于 PhoneGap 的所有最佳性能指南...有很多需要注意以确保您拥有稳固、稳定的性能...但是您可以在一个晚上的阅读中全部掌握.

    这里是最好的掘金:

    PhoneGap/Mobile Web 性能提示

    启用新功能

    架构

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

    【讨论】:

    • 很棒的文档集.. 真的很有帮助,谢谢 :)
    【解决方案3】:

    在表达我对 Phonegap 的看法之前,我需要先声明一下,我绝不是网络开发人员。对我来说,编写 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 最近讨论了这个话题。可以here收听。

    【讨论】:

    • +1 关于社区规模的重要观点。
    • +1 用户体验的好点。这在 iOS 中真的很重要。
    • 您也可以在 phonegap 中创建相同的用户体验。我不认为这只是学习目标 c 的问题。随着其他移动操作系统变得流行:Androi 现在,让我们看看 Windows Mobile 和 Firefox OS 会发生什么……如果您不想局限于 iOS 届时将拥有的 x% 市场份额,那么跨平台解决方案将是最佳解决方案。
    • @memical,Facebook 开发团队会不同意你的观点。我并不是说从市场覆盖的角度来看它没有意义,我是说它不如原生的性能好。不管你说什么,这是事实。
    【解决方案4】:

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

    我们将它与 NS Basic/App Studio 一起使用来制作符合应用商店条件的应用。

    【讨论】:

    • PhoneGap Build 一年后仍处于测试阶段,距离 Adob​​e 收购原始开发者 Nitobi 已有六个多月。
    【解决方案5】:

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

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

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

    查看一些关于如何让你的 JS 更轻量级的教程

    http://bcksp.blogspot.com/

    【讨论】:

    • 其实你现在也可以制作游戏了
    【解决方案6】:

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

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

    【讨论】:

      【解决方案7】:

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-04
        • 2012-03-28
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 2010-12-29
        • 2023-03-29
        相关资源
        最近更新 更多