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

Posted

技术标签:

【中文标题】React Native v Xamarin Forms - 选择跨平台应用程序环境[关闭]【英文标题】:React Native v Xamarin Forms - Choosing Cross Platform App Environment [closed] 【发布时间】:2015-07-14 22:36:30 【问题描述】:

我一直在研究用于构建跨平台应用程序的 Xamarin Forms。我们想要一个针对 iosandroid 和 Windows Phone 的框架。这似乎是一个不错的产品,但许可成本可能会导致我们的商业模式出现问题,而且 Windows Phone 开发的许可也不清楚。

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

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

谢谢。

【问题讨论】:

从我读到的关于 react native 的内容来看,它不是一个“一次编写,到处运行”的框架。因此,您仍然需要编写 2 个应用程序,但您可以使用相同的语言,而不必学习两个。但它应该感觉像是一个完全原生的应用程序,并且比其他跨平台框架运行得更快。 另外请记住,React Native 尚不适用于 Android。开发团队提到仍需要大约 6 个月的时间。 对于任何研究这个问题的人来说,上面的 Lapixx 评论在他写这篇文章时是正确的,但截至 2015 年 9 月,Facebook 已经更新了 React Native,它现在支持 Android 和 iOS,以获得完整的查看下面我的答案。 【参考方案1】:

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

反应原生

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

应用应该能够共享业务逻辑代码和大部分 UI 组件,但由于 react native 背后的团队认为每个平台都有自己独特的界面,你的应用应该考虑到这一点,因此它允许并鼓励您(虽然它不会强制您)为每个平台编写您的应用 UI 界面。

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

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

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

现在 React Native 背后的团队是什么? (基于我在网上观看的演讲):

修复资产的工作流程 - 目前,如果您修改资产,首先您必须针对支持的每个平台在不同的位置进行修改,并且为了在开发时看到更改,您必须重新编译应用程序。 增加 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)

【讨论】:

更新:微软刚刚购买了 Xamarin :) wired.com/2016/02/… 现在是 2016 年,我不会说 Xamarin 是“成熟的”。这显然是相对的,但 Xamarin Studio 每天都会崩溃,或者做一些奇怪的事情(比如:所有菜单突然变灰,除了键盘快捷键之外你无法退出)。专业用途的产品很难接受,更不用说这么贵了。在我看来,Xamarin.Forms 处于“有希望的 alpha”质量水平。我希望微软能把一辆装满钱的车塞进去,真正把事情解决好 截至今天,Xamarin 也是免费和开源的 截至今天 React Native 也支持 Windows :D blogs.windows.com/buildingapps/2016/04/13/… 今天 React Native 很棒! (谁知道明天,因为它变化如此之快......)

以上是关于React Native v Xamarin Forms - 选择跨平台应用程序环境[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms/React Native 是不是也有类似 Flutter 的“配置文件”模式?

浅谈移动应用的跨平台开发工具(Xamarin和React Native)

选择器'labelColor'没有已知的类方法 - react-native-image-crop-picker - 用于 react-native iOS

React Native scrollview 循环播放

如何将 expo react-native 自定义字体应用于整个容器

React Native v-0.63 中的 WebView v-11.2.3 组件未加载其内容(使用 expo cli)