原生对跨平台:PhoneGap、Titanium、Xamarin三大应用开发方案优劣汇总

acntw 2017-03-10

事实上,单纯是原生抑或跨平台这一决策已经能够带来诸多后续影响。应用开发所选择的首要平台及编程语言在产品对用户的直观性以及受众类型方面发挥着巨大作用。例如,您的应用是否只能在Android或者iOS中的一类设备上使用?原生抑或跨平台这一决策最终取决于您的实际业务目标,且其各自都有着自己的优势与缺点。

原生对跨平台:PhoneGap、Titanium、Xamarin三大应用开发方案优劣汇总

原生应用

原生应用采用面向特定平台的编程语言构建。在Android方面,其为Java; 在Windows上则为C#、VB .NET或者C/C++; iOS平台则为Objective-C或Swift。这些应用需要从零开始进行构建,且仅能够在指定平台上运行。

优势

  • 用户界面 (UI) – 应用的外观以及整体使用方式能够决定其最终成功与否。由于原生应用能够与其创建平台无缝对接,因此用户能够使用其更为熟悉的界面。这有助于带来更为积极的用户体验,并鼓励用户长期使用。
  • 性能(UX) – 原生应用开发中往往涉及大量媒体(例如图像、视频或动画)资源,因此需要进行大量交互与数据处理操作。在这方面,原生应用表现更好,因为其原生代码能够直接调用操作系统的独特硬件与软件功能,且几乎不存在任何滞后现象。另外,使用本机代码开发复杂应用能够最大程度降低应用卡顿或者崩溃风险。
  • 更佳排位–原生应用通常在用户中口碑更佳,且能够在应用商店中得到大力推荐。另外,原生应用也能够凭借着出色的性能与用户友好型界面得到受众的高度认同。
  • 平台集成–原生应用往往能够在指定平台上顺畅运行,这意味着其功能可以根据用户偏好进行自定义,并让用户拥有将其作为自身移动设备之上固有组成部分的感觉。

缺点

  • 耗时– 面向多种平台开发原生应用往往更为耗时,因为同样的代码无法直接运行在其它平台之上,这意味着开发者需要耗费额外时间进行代码转换甚至重写。
  • 对开发技能要求更高–欲面向多种平台开发原生应用,企业需要拥有更多技能水平更高的开发者。取决于您所选定的平台类型,跨平台原生应用开发至少需要两名开发者——其一负责进行Android版本开发,其二负责iOS版本开发。
  • 高成本 – 开发者数量的增加意味着开发成本也将快速提升。再加上更为漫长的项目开发流程,企业可能需要将整体预算翻倍甚至再次翻倍。

跨平台

跨平台应用所使用的代码可根据具体操作系统进行定制,而后再行发布。这种多合一式解决方案能够让单一应用运行在多种平台之上,因此受到广大关注时间与成本的企业与开发者的热烈欢迎。

优势

  • 节约时间–与原生应用不同,跨平台应用开发可采用单一代码库面向多种系统平台,从而帮助企业节约由代码重写及平台定制所带来的时间消耗。
  • 成本低廉–企业能够有效削减开发项目的人员数量与成本水平。这种“一次编写,随处运行”的代码能够显著提升开发效率并加快部署速度。
  • 利润最大化–除了节约成本外,跨平台应用还能够同时在多种平台及用户市场上取得影响力,最终实现利润最大化。
  • 于启动及更新–企业可以首先启动应用,并随后根据需要面向多套平台同步推出更新。

缺点

  • 性能延迟 - 跨平台应用往往无法像原生应用那样与运行平台无缝对接。因此,此类应用通常会因代码不能同设备硬件或软件功能顺畅协作而引发卡顿或者延迟。
  • 以特性换通用 – 由于共享同一套代码库,因此跨平台应用无法完美与当前平台相集成,这意味着用户往往不能充分利用平台内的某些功能,例如预设手势、摄像头甚至麦克风。

PhoneGap

PhoneGap,亦被称为Apache Cordova,是一款高人气开源平台,可用于创建跨平台/混合应用。其采用JS、HTML 5以及CSS 3编程语言。

优势

  • 编程语言熟知度高 – 由于PhoneGap采用JS、HTML 5与CSS 3等高人气语言,因此开发者能够轻松上手并开始使用。这不仅能够减少相关培训需求,同时也使得企业能够更快向市场推出应用开发成果。
  • 易在应用商店中被发现 – PhoneGap应用的安装方式与原生应用类似,因此能够在应用商店中获得理想的曝光度。
  • 插件架构– PhoneGap采用一套灵活的插件架构,能够以模块化方式扩展原生设备API。
  • 无许可成本– PhoneGap是一套开源项目且可免费使用,因此企业无需承担任何许可成本。
  • 提供大量库–开发者能够轻松访问并寻求各类资源库的帮助,从而增强自有应用功能。

缺点

  • 性能 – PhoneGap应用的性能表现常常受到批评。一旦应用架构中存在大量图形或者复杂元素,则可能导致应用无响应甚至崩溃。
  • 插件 – 在多数情况下,开发者必须使用特定插件以避免对其原生指定属性产生干扰。PhoneGap拥有一套灵活的插件友好型架构,开发者能够根据需要选择必要插件或者自行开发插件。然而,如果开发者无法找到适用的插件或者无法轻松编写自有插件,则开发过程将遭遇严重延后。
  • 缺少说明文档– PhoneGap的用户指南含糊不清且与用户界面有关的指导性文件缺少部分关键性信息。另外,其中尚不提供可用于强化跨平台应用开发的最佳实践信息。
  • 内存丢失 - 由于PhoneGap缺少缓存/内存管理功能,因此经常出现内存丢失问题。

Titanium

Appcelerator Titanium是一套可用于开发桌面、原生移动以及跨平台应用的开源开发平台。目前市面上已经有超过3万5千款利用JS、HTML 5、jQuery以及CSS 3等语言在Titanium中开发完成。

优势

  • 编程语言熟知度高 – Titanium采用JS、HTML 5与CSS 3等高人气语言,因此开发者能够轻松上手并开始使用。
  • 可访问各先进功能 – Titanium拥有独立的API以访问设备上的各项功能,包括摄像头、麦克风、触控屏幕以及GPS。这意味着用户能够将Titanium应用作为其设备中的固有组成部分并获得良好的使用体验。
  • 即时反馈 – Titanium能够缩短应用开发时间,允许开发者以更少代码进行应用构建。这意味着开发者能够快速构建应用原型设计,并根据即时反馈评估用户与UI间的交互方式与效果。
  • 庞大的技术社区 – Titanium/Appcelerator社区拥有超过20万名开发者,并开放对其Open Mobile Marketplace的访问。开发者能够在这里购买、出售及共享各类模块、模板、设计元素以及面向Web服务的扩展。

缺点

  • 复杂性更高– 应用复杂性的提升亦会引发成本增长。开发者在遭遇大量崩溃及bug等问题时往往需要投入更多时间与精力加以调试,这在无形中拉高了代码组织与多平台支持维护的成本。
  • 灵活性有限 – 尽管Titanium的API对代码行数要求更低,因此能够帮助开发者节约时间,但这种限制亦会导致应用复杂性上升的问题。另外,其还有可能引发应用中的延迟及其它持续性问题。
  • 功能不稳定 – Appcelerator提供StoreKit模块,旨在实现指向苹果App Store的应用内购机制。然而这一功能非常不稳定,且有时无法正常起效。该模块的部分功能极大影响了Titanium的免费增值定价策略。事实上,这款免费下载的软件运行状态极差,且根本无法实现有效的内购效果。而这种不稳定性甚至导致部分用户彻底放弃相关应用。
  • 工具包故障 – 可能很多开发者都有同感,即自从Titanium Studio(一套基于Eclipse的IDE)出现后,Titanium的学习成本开始大幅增加。Titanium Studio存在诸多问题,最严重的就是会在构建过程中忽略部分变更。这迫使开发者必须在每次更改后进行项目清理,或者使用新项目进行完全重新启动。

Xamarin

自2011年发布以来,这款知名框架就被广泛应用于跨平台应用开发。通过API,Xamarin应用能够以原生方式同iOS、Android以及Windows等设备上的摄像头、GPS等功能进行通信。

优势

  • 一套代码玩转全部平台 – Xamarin采用C#与.NET框架相结合的方式,确保应用能够在多平台上正常运行。这意味着开发者能够复用大部分源代码以加快开发流程。Xamarin还能够与Visual Studio及Xamarin IDE协作,开发者无需在不同开发环境间往来切换。
  • 模拟原生 – 由Xamarin开发而成的跨平台应用在理论上可以被划归原生应用,因为其性能指标高度类似于针对单一平台的原生应用。另外,Xamarin应用亦可在应用商店中享受到原生应用的待遇。
  • 原生UX – Xamarin允许用户面向各平台定制其UI。通过使用Xamarin.Forms工具,开发者能够构建跨平台应用并为其配备有针对性的UI组件。为了实现更理想的性能表现,开发者还可以使用Xamarin.iOS或Xamarin.Android工具开发具备原生使用体验的高速、可靠跨平台应用。
  • 功能 – 利用Xamarin,所有硬件兼容性问题都将不复存在。Xamarin允许开发者访问多种平台指定型API,并能够接入原生库以无缝实现多设备平台跨越,且举带来任何功能或者性能问题。
  • 无需昂贵的许可成本 – 在微软于2016年年中收购Xamarin之前,Xamarin的许可费用高达每开发者、每平台1000美元。这意味极小的开发者团队即会给企业带来高昂的许可成本。然而自收购之后,微软开始免费将Xamarin提供给Visual Studio用户,且目前亦在将其打造为真正的开源平台。

缺点

  • 社区规模较小 – Xamarin在过去几年中的发展速度比较稳定,且大多数追随者来自微软。由于社区规模较小,因此寻找有经验的Xamarin开发者可能并不轻松。
  • 需要更为广泛的技能储备 – Xamarin广泛使用.NET开源资源及其它开源技术,因此希望使用Xamarin的朋友需要熟练掌握.NET,同时具备JS或者Objective-C等其它特定平台的专业知识。
  • 应用体积 – Xamarin需要大量操作性软件以实现.NET框架与平台特定操作系统间的代码与引用链接,这意味着其应用的体积相对更大。

相关推荐

JakobHu / 0评论 2020-01-04