哪个更好?原生应用程序还是混合应用程序?

15

我希望开发一个简单的iOS、Android和Windows Phone应用程序。

我想知道是否可以使用简单的HTML5、JS和CSS组合在所有这些平台上运行。

我想知道哪种方法更有效?

时间和编码都没有问题。但如果能够仅使用HTML5-JS实现所有功能,我将选择混合开发。我想了解原生开发和混合开发的主要区别及其示例(我知道主要区别是HTML5-JS支持跨平台)。

注:我不是在制作游戏应用程序。


3
有一篇非常好的文章关于这个问题。希望它能帮到你。 http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/ - andykkt
谢谢@andykkt,这篇文章很好地解决了内存管理问题! - Prabakaran Raja
1
看起来这将解答你的问题 http://ionicframework.com/present-ionic/slides/#/30 - BEJGAM SHIVA PRASAD
@BEJGAMSHIVAPRASAD 谢谢你分享一个不错的链接。看来时代变了 :) - Prabakaran Raja
2个回答

33

根据我的经验,像PhoneGap和其他跨平台解决方案这样的工具,除非您正在开发超级简单的应用程序,否则很难达到预期。即使是基本的过渡动画和小型UI调整,也将使用这些工具成为一个艰巨的挑战。

如果您正在为多个平台构建应用程序,原生开发可能需要更长时间,但优点在于您完全掌控自己所制作的内容。在性能上,原生开发仍然远远领先于跨平台开发,并且可能始终如此,因为它没有嵌套在浏览器或任何其他运行时解释平台中造成的额外开销。

此外,根据我的经验,“一次编写,多平台通用”的神话是一种圣杯。许多人声称已经实现了它,但您总会发现自己编写特定于平台的代码(以“如果是explorer、如果是safari、如果是chrome”等形式)。

我的建议是,为应用程序编写坚实的架构。在一个平台上构建应用程序,解决所有设计中的问题,然后将设计复制到其他平台。这可能需要更长时间,但您的应用程序的强度以及添加/更改功能和其他小细节的灵活性将是值得的。

以Facebook为例。他们之前的应用程序(如果您记得)是一个跨平台应用程序。它很慢,不响应,经常崩溃,几乎无法使用。大约一年前,在无数投诉之后,他们发布了一款本地应用程序的更新版,突然所有这些问题都消失了(至少大部分如此)。


1
我喜欢混合方法的原因是它能够快速得到结果,因为不需要等待设备或模拟器准备好更新更改。使用混合方法时,通常只需在浏览器中按下F5即可。例如,在http://ionicframework.com/中,您还可以在开发的应用程序的网站版本中重用移动代码。 - ses
但是我认为,如果应用程序不响应,则在开发混合应用程序上浪费时间。 - Ravi

6
主要区别在于UI组件,这是应用程序中的主要部分。您无法在混合应用程序中实现本机对话框、通知和本机动画等本机外观和感觉。
“我想知道哪个更有效率?”
效率不是问题,混合应用程序将是支持多个平台的单个应用程序,这是成本和时间有效的。
混合应用程序的优点:
1.成本效益,将开发单个应用程序,从而节省为不同平台制作应用程序支付给开发人员的成本。
2.时间效率,将节省为不同平台制作不同应用程序的时间。
3.更新非常快,与您从Google Play商店更新不同,应用程序仅在服务器端更新,您无需重新安装它。
4.较小的大小。由于用于支持多个屏幕的资源将由HTML处理。
混合应用程序的缺点:
1.没有像本机应用程序那样的外观和感觉。
2.如果服务器关闭,则应用程序甚至不会显示静态行为。
如果您愿意妥协UI,则应该选择混合应用程序。

在混合应用程序的CONS中,你说- 2)需要为每个平台开发不同的应用程序,这会增加成本。我认为这只是与混合应用程序的PROS相互矛盾- 1)成本效益。 - Prabakaran Raja
答案已更新,请查看。 - Jitender Dev
@Brontok“成本和时间有效”,“尺寸更小,更新更快”--涉及什么?您可以更明确一些吗?在需求分析、开发、测试、项目管理、市场营销、工具以及为特定平台和工具集招聘和培训开发人员方面都存在成本。在我看来,您所列出的优点和缺点并不合理。 - CouchDeveloper
@CouchDeveloper 我想我已经表达清楚了。 - Jitender Dev
混合应用程序甚至普通的Web应用程序(使用应用程序缓存)可以在没有互联网连接的情况下离线使用。 - Adam Marshall
好的 @JitenderDev!! - Ajay S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接