我们可以判断一个应用程序是使用phonegap还是类似的跨平台解决方案制作的?

时间:2014-08-21 13:13:23

标签: android ios cordova titanium corona

当我下载应用程序时,是否可以判断该应用程序是通过跨平台解决方案而非原生应用程序制作的?

在网络用户界面中构建的本机和(我不知道要称之为正确的单词)之间的性能是否存在明显差异?

3 个答案:

答案 0 :(得分:5)

本机应用程序是使用设备的本机语言编写的应用程序,例如iOS的Objective C.

移动Web应用程序是使用像Sencha Touch这样的框架使用Web技术(HTML,CSS,JavaScript)创建的应用程序。

混合应用程序正处于这两者的中间。例如,使用PhoneGap的Sencha Touch应用程序将被视为混合应用程序。我们正在使用Web技术,但PhoneGap让我们可以访问我们无法访问的本机API - 因此它是本机和Web的混合。

原生应用

临: a)原生应用程序具有最佳性能,并使用最后可用的硬件资源来提高性能。
b)应用程序将在离线模式下工作。
c)应用程序通过平台App Store分发,为潜在用户提供更好的可视性 d)您的应用程序可以访问该平台上的最新API版本。
e)应用程序使用平台支持的语言构建,因此可以访问IDE,这些IDE提供了快速开发,调试项目的最佳工具。 iOS应用程序可以在XCode上的目标C中构建,它具有调试,设计界面和使用仪器等检查性能的所有工具。
f)Linkedin是一个从HTML5转移到Native的示例。
g)还有Facebook,它掉头了。

缺点: a)您需要巨额预算来支持所有具有相当大市场的平台。您需要维护多个团队,每个平台需要支持一个团队。所以基本上每个团队都会在他们的平台上复制相同的功能。
b)用户需要下载应用程序更新,因此如果设计不当,您最终会在Web服务器上维护多个版本的应用程序。
c)开发人员提升的可能性是另一个问题。当客户C在iPhone发布后突然复活时,没有足够好的开发人员准备就绪。可能是开发人员可以接受培训,但对于中小型公司来说是不可行的,即使是在培训可行的大公司中,受过培训的开发人员也不会达到他们在技术方面的专业水平。他们正在努力。

HTML 5移动网络应用: -

临: a)HTML5移动应用程序类似于普通的Web应用程序,除了它们被设计为在较小的屏幕上工作。
b)这些应用程序的分发非常简单。您只需在Web服务器上部署Web应用程序,用户就可以从浏览器访问它。
c)有一些非常好的移动UI框架,如JQuery Mobile,Sencha Touch,当然还有我最喜欢的mgwt,它为移动设备提供了几个小部件。
d)这些应用程序可能可以覆盖所有平台,因为它们在浏览器上运行,所有现代智能手机都有浏览器。
e)这些应用程序的开发和测试更容易,因为它们与您拥有工具支持的普通Web应用程序类似。

缺点: f)这些应用程序无权访问本机功能。
g)性能与本机应用程序不匹配。
h)这些应用程序无法在离线状态下运行。实际上在离线模式下工作,但这与本机应用程序提供的不匹配。

混合应用程序: -

临: a)混合应用程序的开发速度更快,因为大多数开发工作都是跨平台的Web技术,只有在需要访问本机层时才进行非常少量的本机编码。因此,只需要为其他平台重新实现一小部分代码。这样可以节省开发时间和成本,您可以集中精力开发新功能,而不是在每个平台上复制相同的功能。
b)你接近'一次编写,随处运行',这种策略使Java成为一种主导力量。
c)与本机应用程序相比,构建混合应用程序的工具还不够成熟。情况正在迅速变化,很快就会有一些很好的工具可以支持跨平台混合应用程序的开发。
d)这些应用程序可以部署在特定于平台的应用商店中。
e)混合应用程序提供本机应用程序和HTML5 Web应用程序的优缺点。
f)他们可以访问本机层。
g)这些应用程序可以在离线模式下工作。
h)Netflix是一个很酷的例子,它针对所有设备运行相同的代码库。
i)Gartner预测到2016年,超过50%的应用程序将是混合应用程序。

缺点: a)混合应用程序即使是本机打包也不是本机应用程序。它们在平台Web引擎上执行,在Android和iOS的情况下是Webkit,这是用户和应用程序之间的另一层,因此性能无法与本机应用程序匹配。
b)由于混合应用程序通常使用标准Web技术构建,因此将有大量开发人员可用于提升。本机应用程序不是这种情况。

如果您正在构建生产力应用程序,实用程序应用程序或企业应用程序,混合应用程序适合您。

如果您正在构建游戏或照片,视频相关的应用程序,然后原生应用程序是可行的。

如果您正在构建需要实时工作的应用程序,这些应用程序不需要访问本机层并且不会降低性能,那么html5移动网络应用程序就是您的选择。

因此,需要根据您正在构建的应用程序类型,可以提供的开发成本和时间来做出决定。

答案 1 :(得分:4)

您可以使用任何APKIPA文件,并将文件扩展名更改为ZIP。从那里你可以解压缩包并寻找混合应用程序的迹象。最值得注意的是一个www文件夹,其中包含许多JS / HTML / CSS文件。

如果您发现应用程序是本机的而不是混合应用程序或基于HTML5的应用程序是公平的假设。

答案 2 :(得分:0)

你应该能够通过玩这款应用来讲述。跨平台解决方案的外观和感觉就像一个网页。他们经常呆滞,可能没有反应(如网页)。在页面之间导航需要花费时间加载并经常使用微调器。原生应用程序通常可以即时过渡,或至少拥有动画。 Android具有上下文菜单和操作栏等功能,通常不会被Web类型实现使用。