站点图标 江湖人士

Xamarin与React Native与Ionic:跨平台移动框架比较

Xamarin与React Native与Ionic:跨平台移动框架比较

在我们细心研究React,Xamarin和Ionic框架之间的差别之前,让我们简要会商一下跨平台开辟的焦点价值。

按照市场和市场研究演讲,跨平台使用法式市场的普及率正在快速增加,估计从2015年的251.9亿美元添加到2020年的804.5亿美元。

若是您曾经决定开辟跨平台的使用法式,那么接下来的挑战就是决定选择哪个东西。每个框架都有其长处和错误谬误。我们将考虑Xamarin,React Native和Ionic框架的根基选择尺度,以协助您做出准确的决定。

Xamarin是一个Microsoft支撑的跨平台挪动使用法式开辟框架,它利用中包装的C#和当地库。您能够在我们的文章Xamarin挪动开辟的长处和错误谬误中找到相关Xamarin的更多细致消息。

React Native是一个框架,答应利用Java和React.JS建立接近当地的挪动使用法式(而不是“HTML5使用法式”或“夹杂使用法式”)。在ReactJS和React Native的好与坏方面阅读关于React Native开辟的更多消息。

Xamarin利用C#,一种静态类型言语和合用于所有挪动平台的.NET框架。任何能够用Objective-C,Swift或Java实现的工具,开辟人员能够利用Xamarin在C#中完成。

开辟人员不克不及利用Xamarin供给的用于iOS和Android的本机开放源代码库,但能够利用各类.NET库。很多现有的开源和内部源代码项目能够在Xamarin.iOS或Xamarin.Android项目中重用,这要归功于C#和.NET框架的连系。

React Native利用目前最风行的高级动态编程言语之一的Java。按照最新的Stack Overflow查询拜访显示,在他们的工作中利用Java的开辟人员数量为66.7%。这意味着为您的使用法式找到开辟人员将很容易。

React Native将Java和React.JS(一种Web框架)的长处连系起来,并由Facebook供给支撑。React Native的强大之处在于,它答应在开辟人员需要时利用Objective-C,Swift或Java言语编写模块。在React Native使用法式中利用当地模块和库,您能够处置计较繁重的操作,如图像编纂或视频处置。

Ionic的次要编程言语是Type,它凡是是编译为通俗Java的Java的超集。Type提高了代码的质量,由于它有助于在代码输入过程中发觉并消弭错误。利用Type是可选的,使用法式能够用简单的Java编写。

一般来说,Xamarin的表示被认为是接近当地的。但Xamarin提出了两种建立挪动使用的方式:

Xamarin.Android和Xamarin.iOS。Xamarin.Android / iOS使用法式的行为与本机雷同,由于它们的跨平台功能次要偏重于共享营业逻辑而不是代码库。他们利用当地用户界面控件并操纵平台特定的硬件加快。它有助于实现接近原生的机能,而这在处理运转时代码的处理方案时无法完成。Xamarin将C#编译成机械代码,但更多的鄙人面。

Xamarin.Forms。与Xamarin.Android / iOS相反,Xamarin.Forms专注于普遍的代码共享,而不是特定于平台的行为。百分之九十六的源代码能够反复利用Xamarin.Forms。按照我们Xamarin机能研究的丈量成果,与Xamarin.Native和纯当地开辟比拟,这在很多操作中光鲜明显降低了代码机能。

合用于iOS的AOT。事后编译(AOT)用于iOS。AOT意味着源代码编译成当地代码发生在使用法式启动之前。

合用于Android的JIT。立即(JIT)编译凡是用于Android。JIT意味着代码是在运转时当地编译的。

JIT编译完全不合用于iOS。可是AOT和JIT都能够在Android上利用。

React Native机能接近本机,由于它将代码组件间接呈现给本机API。React还答应利用用Objective-C和Java编写的本机iOS和Android模块。它们不克不及在两个平台上反复利用,其次要目标是在图像编纂或视频播放等复杂操作中具有更高的机能。代码库的其余部门能够跨平台共享。凡是,React Native使用法式能够共享80-90%的JS代码。利用本机库还能够优化使用法式的机能。

React Native利用合用于Android的JIT编译,但不供给合用于iOS的AOT。在iOS的环境下,它不会编译,而是注释Java代码。

快速留意。编译和注释的区别在于,编译将源代码转换为较初级此外言语,而注释则间接施行一种编程言语的指令,在挪动中翻译它。注释需要更多的时间用于全体施行,但阐发源代码的时间更少。比拟之下,编译器需要更多时间来阐发源代码,但总体施行时间更短。

Ionic机能不像Xamarin或React Native那么接近本机,由于它利用Web手艺来呈现使用法式。这种方式大大降低了速度。此外,Ionic晦气用当地组件,并测验考试利用Web手艺从头建立本机行为。为了将使用法式与本机API相毗连,Ionic利用本机封装器Cordova并将使用法式行为调整为根本平台。

Ionic强大的测试过程很是快速。它能够在浏览器中当即运转。该框架还附带大量预制和事后设想的组件,可简化开辟周期。

为了运转代码,Ionic利用合用于Android的JIT编译和平台浏览器WKWebView作为iOS的默认设置。正如我们所提到的,在iOS上运转JIT编译凡是是不成能的,但有一个破例。iOS上的WKWebView支撑JIT。因而,WKWebView对象用于将Web内容嵌入到使用法式中。WKWebView将JS代码的JIT转换供给给机械代码,提高了衬着机能。

可是,在复杂和丰硕的使用法式上,Ionic无法实现与React Native和Xamarin相媲美的机能成果。

Xamarin.Android/iOS。第一种方式需要利用当地平台特定的UI:工程师能够利用当地UI控件和结构建立用户界面。这种方式耗损良多时间,但这种划分确保了挪动使用的当地外观和感受。

Xamarin.Forms。第二种方式是利用Xamarin.Forms,它在运转时主动将每个页面及其控件映照到平台特定的界面元素。借助Xamarin.Forms,您能够使开辟过程更快,并以当地外观和感受为价格节流大量资本。可是,Xamarin.Forms能够成为公司和内部项目标一个很好的处理方案,此中UI部门不像公共使用法式那样环节。

React Native模块与本机iOS和Android UI节制器进行交互,利用户体验接近本机使用法式。它还将ReactJS库与普遍的UI组件一路利用,这能够简化UI开辟。因而,React Native有很多开箱即用的UI组件,如按钮,模块和滑块,这些使开辟人员可以或许更快地工作。

离子UI底子晦气用当地组件,并在HTML和CSS中呈现所有内容。然后它使用Cordova从头建立当地挪动行为。框架附带的AngularJS组件也有助于Ionic看起来像本机。

目前,Ionic供给了新的当地样式的UI元素和结构,这些元素和结构在收集上并不具有,而且仅在iOS和Android上利用原生SDK供给。

在Github上的统计数据显示,这三个傍边最出演框架阵营与原居民59800星星,Ionic是排在第二位33.3万,Xamarin需要的处所纬度与只要3.6万。如斯低的Xamarin成果能够用比来才成为开源产物而且仍然需要利用专有的Visual Studio IDE的现实来注释。

按照最风行的框架的最新Stack Overflow统计,React也是跨平台仪器中利用最多的,而且需要19.5%的响应。8.3%的工程师利用Xamarin。虽然Ionic没有列出这个清单,但它的焦点是Cordova。

React Native开辟者社区正在快速增加,而且曾经具有很多经验丰硕的工程师。这使得启动React项目变得更容易:1)开辟人员能够很容易地获得通俗问题的谜底,2)大型社区曾经建立了很多第三方库。

Git Hub存储库上的React Native统计消息令人印象深刻,它是GitHub上的第13个最有星号的存储库。

按照StackOverflow手艺概述,React Native框架不只是最常用的跨平台东西,并且也是开辟人员中最受接待的东西。

在上图中我们能够看到,66%的受访者高度承认React,而Xamarin快乐喜爱者的数量仅为所有受访工程师的48.7%。再次,Ionic并没有将它列入最受喜爱的框架列表,但它利用Cordova,38.8%的工程师高度承认它。

每个平台的成功取决于其社区。Ionic社区持续增加,按照2017年Ionic开辟者查询拜访,大约80%的工程师认为本人经验丰硕。有一个特殊的Q&A Ionic论坛,开辟人员能够提问并收到谜底或建议。Ionic为其Slack频道供给了一个Slack社区,开辟人员能够与世界各地的其他Ionic工程师合作。Ionic在StackOverflow上的问题比React Native更多,但比Xamarin少。

按照MIT许可,Xamarin曾经成为开源产物。虽然它可免得费利用,但您仍然必需安装Visual Studio IDE,它是专有的,而且是以订阅体例分发的。它可用于最多5个用户的非企业项目。但某些功能被锁定在专业和企业许可证后面。每位用户的年度订阅价钱为企业许可证2,999美元,专业版许可证为539美元。

React Native是一个完全开源的项目。您可免得费利用它和它的库。

Ionic在注册和开辟期间也是一个开源框架。但有一个名为Ionic Pro的伴侣平台,它有三种包装:开辟人员,团队和营业。订阅费用从每月29美元到199美元不等,并供给更多功能,例如更多错误汗青记实跟踪和协作东西的日期,以便办理大型团队中的Ionic工作。

React Native因为其开源刊行版和Java言语,React Native是一个通用框架。若是您只是在没有挪动体验的环境下启动挪动开辟打算,我们建议您起首考虑此框架。礼聘React Native开辟团队会容易得多。虽然利用React Native能够实现代码重用(某些使用法式中的共享代码库高达90%),但框架背后的设法是利用单一手艺,并将源代码调整为最终平台特定。

Xamarin。若是您曾经具有队,则利用Microsoft产物,云处理方案或Visual Studio来完成其他使命,Xamarin是一个不错的选择。若是您需要高机能,靠得住性和支撑,这也是一个不错的选择。另一方面,Xamarin.Forms答应您开辟企业使用法式,此中UI不如功能主要,但通过代码共享简化开辟至关主要。

退出移动版