Native Script、React Native和Ionic框架之间的区别

21

Native Script 和 Ionic 框架都可以用于构建 iOS 和 Android 应用程序,其中 Native Script 可以使用 Webview 构建应用程序,而 Ionic 则不需要使用 Webview。

我对上述技术中的 Webview 和非 Webview 的概念感到困惑。

Native Script 和 Ionic 框架之间的主要区别是什么?哪一个性能最佳?

有人可以解释一下这个问题或提供一些相关资料吗?

(如果我的理解有误,请纠正我)


1
您可以查看NativeScript入门教程-http://docs.nativescript.org/tutorial/chapter-0,其中描述了什么是NativeScript,并逐步说明了如何创建您的NativeScript应用程序。 - Nikolay Tsonev
2
这里提供了关于这三种技术(以及PWA)的最佳比较,绝对值得一看:https://www.academind.com/learn/flutter/react-native-vs-flutter-vs-ionic-vs-nativescript-vs-pwa/ - Daniel Danielecki
4个回答

25

Nativescript(类似于React-Native)允许您使用JavaScript和XML(或JSX)开发移动应用程序。这些框架允许您生成本地移动应用程序。UI使用平台的本机组件创建出高性能、流畅的界面。JavaScript逻辑代码在应用程序中捆绑了一个JS引擎(Android上为V8)内运行。这样做的缺点是使应用程序相当大,但您可以制作跨平台、高性能的移动应用程序。JS代码也可以通过框架中的桥接代码访问手机功能。

PhoneGap / Cordova混合应用程序是安装在手机上的Web应用程序,类似于本机应用程序,但在WebView内运行。Cordova用于访问手机硬件功能。 UI不是本机,而只是一个网页,因此如果应用程序复杂,可能会出现性能问题(尤其是在旧手机上)和图形卡顿。

Ionic2可能是混合框架的最好示例,并且它在很大程度上解决了性能问题,但由于非常新且从Ionic1中断了很多东西,因此获得良好的示例/教程可能会很困难。搜索示例会带来很多不再起作用的代码。混合应用程序通常在所有平台上看起来相似,因为它们不使用本机UI组件。一些人更喜欢iPhone应用程序看起来像iPhone应用程序而不是网页应用程序。


1
你的答案非常具有资源性。 - manish kumar
2
谢谢你的回答。让人困惑的是,在 Cordova 的网站上,它声明 Ionic 是基于 Cordova 的。可能需要解释一下 Ionic 和 Cordova 之间的区别,因为它们都来自同一个家族。参考:https://cordova.apache.org/#getstarted - mirageglobe

6
我曾经在8个月内使用React Native和NativeScript开发过应用程序。Ionic是我想尝试的东西,所以我想分享一下我使用React Native和NativeScript的经验。
React Native和NativeScript都有优点和缺点,取决于用户对应用程序的要求,主要是根据这些要求做出选择。
例如:当我需要构建一个更针对iOS的应用程序时,并且基本上需要快速渲染视图而不是处理大量数据时,我选择了React Native。
另一方面,如果应用程序首先要为Android构建,然后再为iOS构建,则我选择了NativeScript,因为与React Native相比,它对Android的支持更好。您可以利用NativeScript的Angular-2数据绑定方法,从而减少在React Native中不存在的工作量。
React Native社区非常庞大,并且正在以更快的速度增长,但我发现NativeScript社区更有帮助。
以下是官方网站的通用描述:
REACT NATIVE
React Native允许您仅使用JavaScript构建移动应用程序。它使用与React相同的设计,使您能够从声明性组件中组合丰富的移动UI。使用React Native,您不会构建“移动Web应用程序”、“HTML5应用程序”或“混合应用程序”。您将构建一个真正的移动应用程序,该应用程序与使用Objective-C或Java构建的应用程序无法区分。React Native使用与常规iOS和Android应用程序相同的基本UI构建块。您只需使用JavaScript和React将这些构建块组合在一起即可。
NATIVESCRIPT
NativeScript是您构建跨平台本机iOS和Android应用程序的方式,而无需Web视图。使用Angular、TypeScript或现代JavaScript,获得真正的本机UI和性能,同时与Web共享技能和代码。通过JavaScript获得对本机API的100%访问权限,并重复使用来自NPM、CocoaPods和Gradle的软件包。由Telerik支持的开源项目。
IONIC
Ionic框架是用于开发移动应用程序的开源SDK。由于它基于AngularJS和Apache Cordova,因此Ionic能够构建混合应用程序,而不是为iOS和Android分别构建应用程序。它有相当好的文档和教程。只要了解基本的Javascript和HTML,就可以开始使用它。

1

为了更快的学习曲线和更好的代码分离,选择 Nativescript

如果你的应用程序很大、关键且需要一定的性能,则选择 React Native

这并不意味着你不能使用 Nativescript 创建大型应用程序,但事实上,没有任何先驱者在生产中使用 Nativescript

我几乎总是收到小型应用程序的订单,并经常使用 Nativescript。通常需要一两个星期才能完成一个应用程序。

我还在一个由10人组成的团队中使用 React Native。由于许多因素,如性能、可重用性、稳定性和代码分离的考虑。过去6个月该应用程序尚未完成,因为它有一些学习曲线。

但我可以自信地说,如果您的应用程序很小,想要快速交付并且预算有限,则选择 Nativescript

如果您了解 Nativescript,则学习 React 更容易,反之亦然。

我的观点

< p > Nativescript 的架构非常棒。但是, ReactNative 因为它的名字 " facebook 开发者开发了这个" 而变得如此著名,并且能够提供更好的性能。所以,当然它变得受欢迎,人们开始使用它并使其变得更加流行,同时他们也改进了它。如果facebook的人员开发了Nativescript,那么没有人会想去触碰ReactNative

我希望有人能够开发出一种跨平台技术,它结合了Nativescript的架构和ReactNative的组件重用功能特性。


-1
重要的区别在于本地应用程序是专门为特定平台开发的(例如,iPhone的iOS,Android OS的Android或Windows Phone的Windows等),需要开发人员具有特定的知识和技能才能在某个开发环境中工作(iOS的Xcode,Android的Eclipse,Windows Phone的Visual Studio)。每个平台都使用自己的编程语言(iOS的Objective C或Swift,Android的Java,Windows Phone的C#)。
另一方面,混合应用程序由于其跨平台功能而在所有设备上运行。混合应用程序开发的最流行框架是PhoneGap。
然而,我强烈建议尽管它很复杂,但仍要开发本地应用程序,因为本地应用程序具有更好的性能并提供更好的用户体验。
关于本地应用程序和混合应用程序的细节特点、开发过程等,您可以在这篇有用的文章中找到:http://computoolsglobal.com/blog/native-app-vs-hybrid-app/

6
有关非原生应用的问题,它是使用Native Script(nativescript.org)开发的。 - Mahesh K
1
请访问 https://www.nativescript.org/ 以更好地理解问题。 - Really Nice Code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接