比较NativeScript、Ionic2性能和大小

来源:互联网 发布:windows hadoop安装 编辑:程序博客网 时间:2024/06/06 11:37

  比较 NativeScript/Ionic2大小和性能


在这个信息化快速发展的行业中选择最好的技术可能是一个很难抉择的问题。

现在Android和iOS 智能手机的普及以及应用商店正在成为一个经常出现新应用程序,导致近年来这些设备应用开发的需求上升。令人感兴趣的事实是,许多应用程序正在开发Web开发技术,也就是在浏览器中运行和测试,就像它们是设备本身一样!

我们了解混合移动应用程序开发框架,允许您使用基本网站语言(如HTML,CSS和JavaScript)来开发移动应用程序,然后我们清楚了相对应框架技术,它不仅允许您使用Web工具进行移动开发,而且还使用Android或iOS的原生API(用于UI和其他功能)

这是一个很好的趋势,当移动端的需求增加时,不同技术间竞争也将出现。我们已经看到了几个移动开发框架,由于以旧技术开发新技术所需的速度,让我们了解了Ionic 2、NativeScript适合移动端的开发框架。

因此,在本文中,我将介绍这两个框架之间的差异,它们的优缺点,以及您应该为开发选择哪些框架之间的差异。

Ionic 2 vs NativeScript - 移动开发需要选择什么?

这些平台提供了相同的目的:通过网络技术(即HTML,CSS,JavaScript等)来支持创建移动应用程序。但是,将它们相互分开的是他们提供的功能以及它们如何与特定平台的API进行通信。

尽管如此,移动开发还有其他平台,因为近几个月来,这些平台受到了广泛的普及和激烈的竞争。 


NativeScript


由Telerik开发的NativeScript允许您使用JavaScript或TypeScript进行开发,因此,如果您以前使用过AngularJS 2,那么您将有一个简单的过渡。Telerik 之前开发了Kendo UI,用于混合应用程序的紧密角度集成,但他们后来实现了,为什么不提供真正的跨平台本机体验?

使用TypeScript和AngularJS 2,您可以轻松地使用声明式创建移动应用程序的组件。声称支持“写入一次,无处不在”,相同的AngularJS 2代码可以用于UI所针对的所有平台。NativeScript是一个真正的跨平台,意味着100%的Native API访问,其任务是允许人们使用相同的代码库进行所有平台。

与ReactNative不同,即使您使用TypeScript / JavaScript编写代码,NativeScript也使用本机UI代码(适用于相应的Android和iOS手机)!如果我们考虑性能方面,那么NativeScript真正具有ReactNative的优势,因为它使用AngularJS 2结构来创建组件。

对于NativeScript来说,最好的办法就是由Telerik开发,它保证在将来会继续接收新的更新,因为它得到了世界各地的专业开发人员的支持。所以,如果您使用商业应用程序,您可以依靠NativeScript超过ReactNative,因为ReactNative更为开源友好,并且依赖于用户的大量贡献。但是,NativeScript也是开源的。

与ReactNative相比,NativeScript也相当成熟。它已经在2.0版本,而不是ReactNative的情况,更不频繁地获得新的更新。NativeScript可以分享比ReactNative更多的代码,这意味着它可以节省您的时间。

您可以通过以下命令设置NativeScript:

$npm install -g nativescript

现在,您需要通过以下命令安装要求(将其写入CMD):

$ @ powershell -NoProfile -ExecutionPolicy Bypass -Command“iex((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))”

您可以通过运行以下命令来确认安装:

$tns doctor

您可以单独从TypeScript(或JavaScript)代码访问任何本地API!支持整个AngularJS 2 API,因此您可以在应用程序和Web应用程序之间共享代码,也可以使用现有的组件。

NativeScript在与应用程序捆绑在一起的JS引擎(适用于Android的V8)中运行。这使得应用程序大小很大,但是您可以使跨平台的应用程序由于本机组件而实际上非常高效。

所以,简而言之:

优点:

真正的跨平台支持。用于开发所有支持平台的应用程序的单一代码库。

100%Native API访问。您可以使用TypeScript / JavaScript代码访问诸如相机,触摸,日历,电话等硬件功能。

使用AngularJS 2,以便您可以轻松地将以前的Web组件传输到应用程序中。

来自Telerik的很好的支持。

缺点:

需要为组件单独下载许多插件。并非所有插件都可用或经过验证(即经过彻底测试)。

应用程序的大小远大于ReactNative和Ionic 2.如果您的用户有较慢的互联网连接,那么这可能是一个问题。

在NativeScript中不支持HTML和DOM,因此您需要学习不同的UI组件来构建应用程序的UI。


Ionic 2

Ionic 2不仅仅是对以前的Ionic框架的重写,而且还采用了AngularJS 2的设计/结构,同时也为Android,材质设计和iOS设计语言提供了灵感。它是TypeScript准备好的,这意味着您也可以使用现有的AngularJS 2组件。

Ionic 2是一个混合的移动开发框架 ...可以,混合开发意味着什么?混合应用程序就像您可以在应用商店中找到的任何其他应用程序,它们以相同的方式运行(通过下载和安装它们),用户交互是相似的,实际上大多数用户几乎不了解本机应用和混合应用。

混合应用程序的有趣之处在于,它们托管在使用WebView 的本机应用程序中- 这是一种无浏览器的网页加载程序,因此您可以访问移动功能,例如相机,联系人,陀螺仪等。通过网站语言,如HTML,XML,CSS等。

Ionic 2仍然使用WebView (就像之前的Ionic版本),所以你在Android的活动中编写HTML代码,所以与ReactNative 和NativeScript 相比,它可能会比较慢(我们稍后再讨论一下)。您可以在Ionic 2中创建本地化的小部件,但是它们仍然在本地容器中的WebView 中呈现,因此在技术上不是原生的。

WebView提供了不同于浏览器网页的小部件,因此所有Web错误都被忽略,因为目的是为应用程序文件提供HTML画布,而不是实际的网页功能,因此移动应用程序创建只是与网站开发的知识。

Apache Cordova 用于Ionic 2以访问手机硬件功能。UI实际上不是本机的(即使可以给出本机UI的外观),它作为典型/正常的网页加载在WebView上。如果您的手机具有较慢的处理器,则可能会导致性能问题或图形问题。

以前的Ionic版本使用ngCordova 插件来访问本机API。它只是将本机功能包装到AngularJS库中,因此您可以通过JavaScript访问设备的本机功能,但新版本支持Ionic Native ,与ngCordova完全相同,但更加顺畅。例如,它包装在插件回调承诺或可观察,所以共同的接口被提供用于所有的插件,支持易用性天然的功能性的。

您需要下载用于访问本机功能的插件,例如,如果要使用Google地图,则需要从此处下载Cordova插件(https://cordova.apache.org/plugins/)。如果你知道PWA(Progressive Web App),那么Ionic 2就是一个很好的例子,因为你通过使用现代的网络技术获得类似应用程序的体验。

所以,我们来看看如何在Ionic 2中创建一个项目。你需要先安装Cordova和Ionic CLI(假设你已经安装了NPM):

$npm install -g ionic cordova

现在,您可以创建新的Ionic项目:

$ionic start sampleProject --v2

然后你可以服务它:

$ cd sampleProject

$ ionic serve

Ionic 2的问题是,与直接使用本机API相比,TypeScript组件可以使任务更慢。幸运的是,Ionic 2在其结构的帮助下克服了几个性能问题,并定期更新,并且在大多数情况下,您不需要太多的性能。

Ionic 2非常适合需要尽可能快地交付的应用程序的原型设计和快速开发,或者如果有许多应用程序需求,但代码库的变化较少,您可以在短时间内创建多个应用程序出了相同的代码库。

所以,简而言之:

优点:

混合网页开发支持。相同的代码可用于开发Android,iOS,Windows Phone和Web应用程序。

非常快速的开发测试周期。您编写代码并在浏览器上进行测试,无需重型模拟器加载。

允许您在TypeScript中编写代码,使得从AngularJS 2过渡非常简单。

相同的语言(TypeScript)可用于为每个平台开发应用程序。

其插件系统使您可以使用任何类型的设备的本机功能。

缺点:

如果您需要对本地代码使用大量回调,则可能会出现性能问题。

所有设备中的UI都可以为那些喜欢本机UI外观的用户开放。

开发高度先进的图形或高度互动的过渡可能是一项复杂的工作。

尾声

   那么问题来了NativeScript/Ionic2我该怎么选择?不过我的回答是:这些都不是需要考虑的,难道不是?

在现在的4G网速下,两者开发应用大小和性能显而易见,对于用户体验也不会产生的影响。而如果用户还在用2G网络,你要先想一下,他是你的目标用户吗?事实上很多应用的设计目标都不包括2G用户。

所以,我们要先弄清楚自己的根本目标是什么,否则必然事倍功半。

开发任何应用产品的目标都是为目标用户群提供最佳的服务,超出目标用户群的需求则属于nice to have(有更好,没有也无所谓)。有了清晰的目标,研发投入才不会浪费。

 


原创粉丝点击