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

时间:2015-05-05 09:16:10

标签: android ios windows-phone xamarin.forms react-native

我一直在寻找Xamarin Forms来构建跨平台应用程序。我们想要一个针对iOS,Android和Windows Phone的框架。它似乎是一个不错的产品,但许可证成本可能会导致我们的业务模式出现问题,而Windows Phone开发的许可也不清楚。

我遇到了另一个名为React Native的框架,声称能够构建跨平台应用程序。我想知道是否有人能够让我了解它的优点和缺点,特别是如果可能的话,相对于Xamarin Forms。有一件事是它使用Javascript,它可能无法很好地扩展(无论是代码维护还是执行性能)。但我很感激任何看过React的人的意见,并就其实用性形成了一些客观的意见。

https://facebook.github.io/react-native/

感谢。

1 个答案:

答案 0 :(得分:20)

披露:我不是Facebook或微软员工,我没有参与任何一个平台,我是一个刚刚开始学习如何使用本机开发的网络开发人员。

反应原生

由facebook和open sourced构建 - 它目前(截至2015年10月)仅支持iOS和Android。它类似于Xamarin,因为您构建的UI组件被转换为本机组件,而DON不会在Web视图中运行,例如在其他框架中(例如:Cordova);优点是本机组件比Web组件响应更快。

应用程序应该能够共享业务逻辑代码和大多数UI组件,但是当后面的团队反应本机时,每个平台都有自己独特的界面,并且您的应用应该考虑到这一点,因此它允许并鼓励你(虽然它并没有强制执行)为每个平台编写你的应用UI界面。

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

您的应用程序将在两个线程中运行,即运行大部分UI的主线程,以及运行业务逻辑的nodejs线程。在构建应用程序时,这会产生一些影响。

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

现在反应原生工作的团队是什么? (根据我在线观看的会谈):

  • 修复资产的工作流程 - 目前,如果您修改资产,首先必须在支持的每个平台的不同位置执行此操作,并在开发时查看更改,您必须重新编译应用程序。
  • 增加反应原生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)