为PhoneGap中的多平台移动应用编写一次代码

时间:2012-08-14 08:12:19

标签: cordova cross-platform dry

我一直在寻找一些电话空白,以及许多其他移动应用程序制作解决方案。由于phonegap声称支持最多种类的技术,它似乎非常有吸引力。但是,在查找入门指南时,还有针对iPhone,Android等的单独指南。

所以我想知道开发跨平台应用程序的方法是什么?是否可以编写一次代码并在phonegap支持的所有平台上使用?你用纯html / css / js写的吗?

1 个答案:

答案 0 :(得分:2)

已经在PhoneGap和'native'上写了很多东西(vs Titanium和其他人)[参见右边的'Related'栏]。单独指南的原因是您需要这些特定环境才能最终构建您的应用程序(将您的html / css / js与PhoneGaps平台特定代码合并)。 PhoneGap Build尝试解决这个问题:它为您构建应用程序(作为Web服务)。

开发本身发生在html / css / js中。您的js代码将通过一组PhoneGap代码提供的接口访问电话上的js通常无法使用的功能,这些代码对于每个平台都是不同的。如果PhoneGap不提供某些功能,您可以自己添加(或找到执行此操作的第三方插件),但这需要您编写与平台相关的代码。当我使用它时,我无法通过PhoneGap Build(为您构建的Web工具)使用自定义库。

就个人而言,我完全抛弃了PhoneGap的想法。您没有原生的“UI”,而是留在HTML / css / js中可以执行的操作。在我看来,这不仅限于许多方面(关于外观和速度),它也不那么“直截了当”和“稳定”。这导致许多奇怪且难以解决的“错误”(应用程序可以工作,但是一旦用户不移动并以'预期'方式点击他/她的手指,就会出现毛刺,我不喜欢这样, 亲身)。解决这些需要花费很多时间,我觉得这样做并不好玩。我在这里谈单电话,单一平台。你可以想象如果你在另一个上尝试这个会发生什么。

此外,使用PhoneGap让您依赖于另一个第三方(即PhoneGap)。此外,您生成代码并学习技能,在移动级别,并且在我看来,不那么“标准”,因此不太可重复使用,我怀疑这是否会很快改变。支持和文档也较少,工具也是如此。最后,开发本机代码使您更接近实际平台,我认为这很重要,因为它们各有优缺点和特点。

Android和iOS现在占智能手机销量的85%。所以目前,我的策略是针对这两者。学习曲线肯定会更大,特别是如果你来自网络并且已经拥有html / css / js技能。但是,一旦“达到标准”,我认为开发一个应用程序两次本机可以与PhoneGap所需的所有调试竞争,时间(假设您希望在PhoneGap应用程序中至少有一定程度的体面)。而且质量明智,您的原生应用程序会更好。当然可以。

但是,这只是一种观点,也可能随着时间的推移而发生变化。我的策略(专注于本地开发)主要基于我使用PhoneGap的经验。还有其他一些方法,比如Titanium,它们有不同的优点和缺点,你至少可以看看它们。

编辑:抱歉长咆哮。毋庸置疑,它的相关性以及它是否适用于你,完全取决于你来自哪里(技能等)以及你将去哪里(无论是坚持一个还是两个平台都是一种选择)