当web成为选择 开发原生移动app还值得吗?

日期:2016-11-4作者:Mark Betz

web应用   原生app   

【TechTarget中国原创】

很多年一来,开发者一直在为使用web应用而不是原生移动app寻找各种充分理由。这些观点认为,原生app创建和维护的代价很大;而响应式web应用则利用了一个代码库和设计来支持所有设备。

你不需要舍近求远去寻找Web应用观点的对立面,但是在这场争论中,行动也许要胜过言语。2016年,GovInsider上面的一篇文章煽动了移动平台之争的气焰。在那篇文章中,英国政府数字服务(GDS)的前设计负责人Ben Terret讨论了该机构禁止原生app开发而是转向采用公共UX框架的HTML5 web应用的理由。这些理由主要围绕着大量的原生移动应用开发和维护的巨大成本而展开。

那么你是否也应该取缔原生移动应用呢?它们的开发成本值得吗?做出这一决定的条件是什么呢?

本土化

随着iPhone的推出,其进入的代价是通过苹果应用商店流通的编译过的Objective-C二进制代码的分发。对于一般web开发者学习来说,Objective-C并非最友好的语言,但至少还有一个平台,以及一个迅速形成的活跃社区来提供支持和鼓励。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

技术手册>更多

  • 智能BPM与业务流程工具

    Gartner认为iBPM要比运营型智能平台更优秀,表现在以下几个方面:iBPM套件提供更好的工作流,适配性案例管理以及结构化流程协调能力。

  • 云BPM新常态解析

    云端业务流程管理已经不再是什么新鲜事,更不再是什么可怕的方法来管理重要的业务流程。现在,它已经普遍被认为是一种新常态。组织已经从这一技术中获益,使它来更有效地访问和管理企业信息。

  • 企业IT集成指南

    随着云技术的不断采用,现代企业都面临着重大的集成问题。现在已经不再是把企业内部的数据和应用简单地缝合在一起,企业IT现在面临着整合着外部与内部信息的难题。

  • API开发与管理大作战

    2014将会是API管理方法新旧PK的一年,据Delyn Simons说,她领导了Mashery开发者的外展团队。应用编程接口(API)的主流化和私有化在新的一年也将掀起波澜,她在波士顿“Future Insights Ultimate Developer Event 2013”大会上预测说。

【TechTarget中国原创】

很多年来,开发者一直在为使用web应用而不是原生移动app寻找各种理由。这些观点认为,原生app创建和维护的代价很大;而响应式web应用则利用了一个代码库和设计来支持所有设备。

在这场争论中,行动也许要胜过言语。2016年,GovInsider上的一篇文章煽动了移动平台之争的气焰。在那篇文章中,英国政府数字服务(GDS)的前设计负责人Ben Terret讨论了该机构禁止原生app开发而是转向采用公共UX框架的HTML5 web应用的理由。这些理由主要围绕着大量原生移动应用开发和维护的巨大成本而展开。

那么你是否也应该取缔原生移动应用呢?它们的开发成本值得吗?做出这一决定的条件是什么呢?

本土化

随着iPhone的推出,通过苹果应用商店流通的编译过的Objective-C二进制代码逐渐分发。对于一般web开发者学习来说,Objective-C并非最友好的语言,但至少还有一个平台,以及一个迅速形成的活跃社区来提供支持和鼓励。

那是九年前的事了,在此后的这段时间里,Google推出了使用Java作为原生语言的Android,而万维网联盟(W3C)则设计和采用了HTML5,这一协议的特性使得响应式web应用实用化,而像Xamarin和PhoneGap (Apache Cordova)这样的跨平台库的出现则试图集成其他技术的优点。在经过将近10年的演进之后,现在大概有4种选择:原生、跨平台、web以及混合应用,每一种都有优点和缺点。

考虑到特殊的一组用户需求,原生app开发仍然可能是最昂贵的一种选择,尤其是在大量异构设备的环境下。为了同时在Android和iOS设备上面部署,你需要精通Java以及Objective-C或者苹果新的Swift语言的工程师。每一种情况下工具链,部署路径,发布许可条件以及支持需求都不一样。

此外,由于这些办法依靠用户主动将编译的二进制代码放到自己设备上,所以你没有办法在客户升级后每一个变更集的二进制版本的情况下更新客户体验。当然你可以通过REST API利用公共的后端,但是从客户端来看,确实有些“复古”。

Web和混合应用

而在另一端,带响应式标记和CSS风格的HTML5 web应用则是成本最低的替代方案。虽然在兼容浏览器上web应用有一些新能力,但基本上这仍然是web开发。设计师需要高度擅长创建可伸缩的标记,能够在大范围的设备上显示正确。开发者可以接触到很酷的新功能,但基本工具仍然是HTML,JavaScript以及web框架,所有这些东西你的团队已经在用并且很熟悉。

而中间方案的成本规模也是折中的。类似上述提到的那些跨平台框架可以让你的团队用一种语言(比如说JavaScript或者C#)编写,然后编译出适应不同设备平台的二进制代码。这些二进制代码通常要大很多,往往会大一个数量级,因为必须把所有的公共库代码都包含进去,而用户界面模式和设计概念往往是能做所有支持设备上工作的各种组件的最小公约数。在开发和支持方面,相对于原生开发,跨平台框架并没有什么优势,你仍然必须把二进制代码推给最终用户设备并且为他们提供支持。

对于所谓的“混合应用”(由web浏览器控件托管的原生库包含的响应式web应用)来说,最后一点也是如此。应用启动后首先创建web控件,然后控件从服务器加载标记。混合应用相对于单纯HTML5应用的优势包括对应用生命周期有更多的控制,在通知方面有更好的用户体验,并且可以使用漂亮的原生效果,以及web浏览器仍然很难再造的控件。而劣势在于,你仍然需要懂设备原生语言,会创建和维护打包应用的开发者,但大部分或者全部的复杂用户功能都可以用网页来实现。

应该选哪一个?

考虑到这些选择,为什么不效仿GDS的做法,禁止原生app呢?无论是从金钱还是趋势上都有若干合理的商业理由,而决策因素大部分都归结为下面这两点:你需要多少不同的版本?以及用户体验的触觉和视觉属性有多重要?

如果所有用户都处在公共的设备平台和OS的话,原生开发的成本是会降低的,这仅仅是因为上述提到的东西——工程师,工具需要更少了。这一点甚至在Android平台更普遍,因为其部署模式比iOS更加开放,或者Windows Phone也是,因为如果需要的话你可以拥有自己的分发管道。

而在客户端体验方面,不难看到许多仍然继续专注于原生开发的组织正在把许多的品牌资本投入到出色的用户体验上。做聊天应用、新闻流、视频流媒体、游戏等许多价值取决于客户端观感应用的公司也有强烈的欲望投入这一领域。

而企业应用(LOB)的情况也许有所不同,对于它们来说,安全、信息准确度以及可用性是更重要的考虑因素。一些组织会发现自己两头都要兼顾,对于内部LOB应用以及广大的客户群来说,他们都预期有全面流畅的用户体验来满足自己。

对于其他人来说,混合与响应式web应用成为默认选择的趋势似乎还在继续。同样可在差别各异的异构设备上运行的原生app的出现,会继续引导组织朝着更容易创建和部署移动应用的工具转变。

如果你的品牌是靠抓住用户眼球来竞争的话,开发原生app可能会是一个不错的选择。但是一般的企业LOB应用不会从选择原生应用上得到很大的投资回报。