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

标签 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/

谢谢。

最佳答案

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

react 原生

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

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

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

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

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

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

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

关于android - React Native v Xamarin Forms - 选择跨平台应用程序环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048820/

相关文章:

java - 只要有非零余数,我的 Bigdecimal 除法就会导致应用程序崩溃?

android - 部署 meteor 应用程序后无法使用 android-ddp 连接到 meteor

ios - 如何在不同的 iOS 设备上为 UINavigationBar 设置背景图片

ios - 自定义 uitableview 单元格未显示所有文本标签

azure - Windows Azure 访问控制和 Windows Phone 8

windows-phone-8 - 快速应用程序恢复在 Windows Phone 8 上的密码锁定屏幕下不起作用

android.database.sqlite.SQLiteException : near "ON": syntax error (code 1)

android - 忽略导航()调用

ios - 如果我已经对该 Optional 执行了条件检查,有什么好的方法可以避免强制解包?

windows-phone-8 - UserExtendedProperties ANID2 是否跨设备一致?