Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android React Native v Xamarin表单-选择跨平台应用程序环境_Android_Ios_Windows Phone_Xamarin.forms_React Native - Fatal编程技术网

Android React Native v Xamarin表单-选择跨平台应用程序环境

Android React Native v Xamarin表单-选择跨平台应用程序环境,android,ios,windows-phone,xamarin.forms,react-native,Android,Ios,Windows Phone,Xamarin.forms,React Native,我一直在看Xamarin表单,以构建一个跨平台的应用程序。我们想要一个针对iOS、Android和Windows Phone的框架。这似乎是一款不错的产品,但许可成本可能会给我们的业务模式带来问题,而且Windows Phone开发的许可也不清楚 我遇到了另一个称为React Native的框架,它声称能够构建跨平台应用程序。我想知道是否有人能给我一个关于它的优点和缺点的想法,特别是相对于Xamarin形式,如果可能的话。一件事是它使用Javascript,这可能无法很好地扩展(无论是在代码维护

我一直在看Xamarin表单,以构建一个跨平台的应用程序。我们想要一个针对iOS、Android和Windows Phone的框架。这似乎是一款不错的产品,但许可成本可能会给我们的业务模式带来问题,而且Windows Phone开发的许可也不清楚

我遇到了另一个称为React Native的框架,它声称能够构建跨平台应用程序。我想知道是否有人能给我一个关于它的优点和缺点的想法,特别是相对于Xamarin形式,如果可能的话。一件事是它使用Javascript,这可能无法很好地扩展(无论是在代码维护还是执行性能方面)。但如果有人仔细研究过React,并对其有用性形成了一些客观的看法,我将非常感谢


谢谢。

披露:我不是Facebook或Microsoft的员工,我不参与任何一个平台,我是一名刚刚开始学习如何使用react native进行开发的web开发人员

自然反应

由facebook构建,开源-目前(截至2015年10月)仅支持iOS和Android。它与Xamarin的相似之处在于,您构建的UI组件被转换为本机组件,并且不会在web视图中运行,例如在其他框架中(例如:Cordova);其优点是本机组件比web组件响应更快

应用程序应该能够共享业务逻辑代码和大多数UI组件,但react native的团队认为,每个平台都有自己独特的界面,您的应用程序应该对此负责,因此它允许并鼓励您(但不强制您)为每个平台编写应用程序UI界面

所有代码都是用Javascript(不是Java)编写的,在nodejs进程中运行,UI使用XML元素描述,并使用类似于CSS的模式进行样式设置,但内部解析为Javascript

您的应用程序将在两个线程中运行,一个是运行大部分UI的主线程,另一个是运行业务逻辑的nodejs线程。当您设计应用程序时,这会产生一些影响

该框架已经足够成熟,可以构建可用于生产的应用程序,但官方支持的跨平台组件仍需要增加。社区也在构建您可能想要使用的伟大的跨平台组件,如果不是所有的话,大多数都是免费的

现在工作的团队是什么?(根据我在网上观看的谈话):

  • 修复资产的工作流程-当前,如果您修改资产,首先您必须在支持的每个平台的不同位置进行修改,为了在开发时看到更改,您必须重新编译应用程序
  • 增加react本地UI元素的数量(特别是android平台)

总之,您需要考虑以下几点:

                 Xamarin                     React Native

built by:        Xamarin                     Facebook
language         C#                          Javascript (nodejs)
age              mature                      (prod ready), but not mature
community:       good support                good support
platforms        iOS, Android, Windows       iOS, Android
cost             FREE (open sourced)         FREE (open sourced)

从我读到的关于react native的内容来看,它不是一个“一次编写,到处运行”的框架。因此,你仍然需要编写两个应用程序,但你可以使用相同的语言,而不必学习两个。但它应该感觉像一个完全的原生应用程序,比其他跨平台框架运行得更快。还要记住,React-native还不适用于Android。开发团队提到还需要约6个月的时间。对于任何研究这个问题的人来说,上面的Lapixx评论在他写作时是正确的,但截至2015年9月,Facebook已经更新了React Native,它现在支持Android和iOS,关于完整的评论,请参见下面我的回答。更新:微软刚刚收购了Xamarin:)2016年,我不会说Xamarin“成熟”。这显然是相对的,但Xamarin Studio每天都会崩溃,或者做一些奇怪的事情(比如:所有菜单突然变灰,除了键盘快捷键之外,你不能退出)。对于专业用途的产品来说,这几乎是不可接受的,更不用说这么贵的了。在我看来,Forms处于“有希望的alpha”质量水平。我希望微软在这方面投入大量资金,并真正解决问题,因为今天的Xamarin也是免费的开源软件Das of today React Native也支持Windows:D today React Native真棒!(谁知道明天会怎样,因为它变化如此之快…)