移动应用的开发方式多种多样。虽然从技术层面了解混合与原生应用间的区别非常重要,但更重要的仍然是立足业务层面思考具体决策会给开发团队及客户带来哪些影响。
事实上,混合与原生之争久已有之,且双方在使用体验、技术、投资回报以及业务影响等层面皆各擅胜场。在本文中,我们将着眼于其中最重要的几项因素。
原生应用即利用特定平台技术开发而成的应用(例如iOS上的Objective-C或Swift,以及Android上的Java)。原生应用能够充分发挥平台的既有优势。
原生移动应用的优势与缺点
优势
性能更好。由非标准语言及工具开发而成的原生应用采用原生抽象层以提升运行速度,且实际速度由应用选择的具体抽象层效率决定。即使是非标准原生应用,其性能也远远超过Web应用,这是因为后者必须在浏览器内执行,这会增加额外的执行重定向层。因此,原生应用拥有更出色的用户体验及更强的应用功能(特别是与手机硬件相关的功能)。研究显示,两秒的延迟就足以令相当一部分用户选择弃用。Facebook与领英曾利用HTML 5开发混合型应用,但双方最终还是被迫转向原生应用以解决性能问题。
用户体验。原生移动应用的另一大优势在于用户体验。原生应用在外观与使用感受上类似于默认内置应用,且用户能够很快了解如何使用应用并进行导航。不过原生应用必须与系统升级进行匹配,否则外观上的不协调感与运行稳定性差等问题反而会令用户更加无法忍受。
应用商店推广。另外,原生应用与混合应用的另一大区别在于,原生应用更易在应用商店当中进行推广。
缺点
资源与成本。要为Android与iOS开发应用,大家必须分别建立两支开发团队并面对两套独立的代码库。这意味着开发成本更高且长期维护支出更可观。因此,如果预算充足且对投资回报率要求不高,那么原生应用显然更具优势。
所有现代移动应用都可被划分为三种基本类型:原生、混合与Web。每一种都有着自己的优势与缺点。原生应用能够充分发挥设备功能,但Web应用的开发成本与时间周期则更友好。作为二者的结合体,大家可以面向多种平台使用同一套代码库并开发出类似于原生效果的应用,这就是混合应用。
混合移动应用的优势与缺点
优势
要求较低。混合应用能够将HTML 5应用嵌入至瘦原生容器当中,从而将原生与HTMl 5元素加以结合。开发者能够利用原生SDK增强Web代码,从而保证其在多种平台上轻松部署。
成本。混合移动的开发成本通常较低。一旦开发完成,大家无需额外投入即可将其同时运行在Android与iOS系统之上。利用混合应用,除非企业需要向其中添加能够显著改变用户体验的新型功能,否则用户将不需要在应用商店内进行应用更新。而只要在服务器端对对应页面进行更新,用户将可立即获得更新内容——企业选择混合移动而非原生应用的根本原因往往正在于此。
混合移动开发工作更快且更简单,而应用维护工作的难度亦更低。
举例来说,假定客户希望为其供应商生命周期管理系统提供一套全新用户体验及现代图形用户界面。这意味着现有生命周期管理系统必须能够显示各类重要信息,且应用本身应能够轻松访问最新供应商信息并为采购者提供分组数据。另外,应用还应整合交互式设计、实用性改进以及可访问性与性能水平等因素。在这种情况下,理想的选择是利用HTML 5面向iOS开发混合应用——客户将能够顺利将此应用整合至原有移动应用平台当中,且混合特性亦使得应用本身更易于迁移。
缺点
功能访问。如果您的应用高度依赖于原生功能,那么原生应用无疑是更佳选项。在构建混合应用时,您所采用的框架可能导致无法访问全部本机功能,具体包括相机、联系人、短信、硬件设备按钮、地图、推送通知等。当然,也有一些框架能够在混合应用中实现一部分本机功能组件。
考虑到以上情况,Xamarin、Codename One及Rem Objects等能够将原生与混合应用开发共性加以融合的平台就变得非常重要。总体来讲,Xamarin允许开发者使用C#作为惟一语言配合惟一IDE(可以是Visual Studio或者Xamarin Studio)完成面向苹果、Android乃至Windows设备的原生应用开发工作。
遗憾的是,Xamarin平台存在着一大致命问题,其无法在应用中添加大量复杂的图像与动画。
业务需求是决定您选择的核心条件。在大多数情况下,原生应用的效果通常更好。但如果您希望构建媒体网站/内容交付平台,那么混合应用也许同样值得考虑。另外,也别忘记将Xamarin等平台纳入考量范围。