【问题标题】:Code once for multi-platform mobile apps in PhoneGap在 PhoneGap 中为多平台移动应用程序编写一次代码
【发布时间】:2012-08-14 16:46:02
【问题描述】:
我一直在研究 phonegap 以及许多其他移动应用制作解决方案。由于 phonegap 声称支持最多种类的技术,它似乎非常有吸引力。但是,在查找入门指南时,有单独的 iPhone、Android 等开发指南。
所以我想知道开发跨平台应用程序的方法是什么?是否可以一次编写代码并在 phonegap 支持的所有平台上使用?你是用纯html/css/js写的吗?
【问题讨论】:
标签:
cordova
cross-platform
dry
【解决方案1】:
PhoneGap 与“native”(与 Titanium 和其他)相比已经写了很多 [参见右侧的“相关”栏]。单独指南的原因是您需要这些特定环境来最终构建您的应用程序(将您的 html/css/js 与 PhoneGaps 平台特定代码合并)。 PhoneGap Build 试图解决这个问题:它为您构建应用程序(作为 Web 服务)。
开发本身发生在 html/css/js 中。您的 js 代码将可以访问手机上的 js 通常无法使用的功能(例如相机),通过一组不同平台的 PhoneGap 代码提供的接口。如果 PhoneGap 不提供某些功能,您可以自己添加(或找到执行此操作的第三方插件),但这需要您编写依赖于平台的代码。在我使用它时,我无法通过 PhoneGap Build(为您构建的网络工具)使用自定义库。
就个人而言,我完全放弃了 PhoneGap 的想法。你没有原生的“UI”,而是留下了你可以在 HTML/css/js 中做的事情。在我看来,这不仅在很多方面受到限制(关于外观和速度),它也不太“直截了当”和“稳定”。这会导致许多奇怪且难以解决的“错误”(该应用程序有效,但只要用户不移动并以“预期”方式轻敲他/她的手指,就会出现故障,我不喜欢那样, 亲自)。解决这些问题需要很多时间,我觉得这样做并不有趣。我说的是单一电话,单一平台。你可以想象如果你在另一个上尝试这个会发生什么。
此外,使用PhoneGap 会使您依赖另一个第三方(即PhoneGap)。此外,您编写的代码和学习的技能在移动层面上并不那么“标准”,因此可重用性较低,我怀疑这种情况是否会很快改变。支持和文档也较少,工具也是如此。最后,开发原生代码让你更接近实际平台,我认为这很重要,因为它们各有优缺点和特点。
Android 和 iOS 现在占所售智能手机的 85%。所以目前,我的策略是针对这两个。学习曲线肯定更大,特别是如果您来自网络并且已经具备 html/css/js 技能。但是一旦“达到标准”,我认为开发一个应用程序两次原生可以与PhoneGap所需的所有调试竞争,时间上(假设你希望你的PhoneGap应用程序至少有一定程度的体面)。在质量方面,您的原生应用程序会更好。肯定的。
但是,这只是一种观点,而且可能会随着时间而改变。我的策略(专注于本地开发)主要基于我在 PhoneGap 方面的经验。还有其他方法,例如 Titanium,它们各有优缺点,您至少也可以看看这些方法。
编辑:对长篇大论感到抱歉。毋庸置疑,它的相关性以及是否同样适用于您,完全取决于您来自哪里(技能等)以及您要去哪里(坚持一个或两个平台甚至是一种选择) .