为 iOS 和 Android 构建具有原生性能的混合 React 应用程序

Posted

技术标签:

【中文标题】为 iOS 和 Android 构建具有原生性能的混合 React 应用程序【英文标题】:Building hybrid React apps for iOS and Android with native performance 【发布时间】:2015-03-28 18:08:25 【问题描述】:

是否可以使用 Facebook 的 React javascript 框架为 iosandroid 构建应用程序,提供与原生应用程序几乎相同的性能?

【问题讨论】:

【参考方案1】:

直到 2015 年 1 月,使用在 WebView 组件内运行 React JavaScript 部分的混合方法一直是唯一的选择,使用像 Apache Cordova 这样的框架,这种方法具有典型的缺点。 JavaScript 的垃圾收集等任务会减慢应用的原生部分,导致跳帧,让应用感觉迟缓。

1 月 28 日Facebook announcedReact.js Conf 2015 上的 React Native 项目。 React Native 将是一个开源项目,它支持使用 React 为 iOS 和 Android 构建的 html5 应用程序的原生渲染。 Facebook 内部已使用 React Native 构建应用程序,例如 iOS 版 Facebook Groups 应用程序。

从技术上讲,React Native 在后台线程中运行 React 应用程序的 JavaScript 代码。收集对虚拟 dom 的更新,所有更改都通过 API 发送到应用程序的本机部分。通过这样做,React Native 通过让应用等待未完成的 JavaScript 操作来避免降低应用的 FPS 速率。

Facebook 宣布 React Native 的源代码将在 2015 年 React.js Conf 后不久在 Github 上提供。会议参与者将于 2015 年 1 月 29 日访问 Github 存储库。

更新:包含一些技术细节的第二个演示视频React.js Conf 2015 Keynote 2 - A Deep Dive into React Native 现已在 Youtube 上发布。在演示期间,Facebook 宣布 iOS 和 Android 的布局和盒子模型引擎渲染的源代码可在 Github 上的以下存储库中获得:github.com/facebook/css-layout

用于 React Native 的 iOS 版动画库托管在 https://github.com/facebook/pop

更新 2:源代码现已在 Github 上提供 React Native 源代码现已提供https://github.com/facebook/react-native。

更新 3:React 团队于 2015 年 9 月发布了 Android 支持 https://code.facebook.com/posts/1189117404435352/react-native-for-android-how-we-built-the-first-cross-platform-react-native-app/

可以在此处找到开始使用 React Native Android 开发的说明: https://facebook.github.io/react-native/docs/android-setup.html

【讨论】:

目前只有Youtube视频,一有源代码,就会添加源代码和文档的链接。 我看过视频,也提到了 android,但从来没有真正的时间线(或者至少目前的进展如何)。那里有更多信息吗? Github 上的 css-layout 模块中已经有一些在线源代码支持 Android。我还没有听说任何关于发布支持 Android 的 alpha 版本的 React Native 的时间表。 太糟糕了。多平台方法真的让我感兴趣:/ 源代码现已发布,可以玩了。 github.com/facebook/react-native【参考方案2】:

如上所述,您只能在 iOS 上使用 React Native。

如果你想在两个平台上都使用 React:

查看 Reapp (http://reapp.io/)。这是一个 React + Javascript 框架,用于构建具有很酷功能的 iOS 和 Android 应用程序。 不妨试试 Touchstone (http://touchstonejs.io/)。基本上:React + Cordova + HTML5/CSS3 UI。文档也即将推出。

【讨论】:

自 2015 年 9 月起现在支持 Android。

以上是关于为 iOS 和 Android 构建具有原生性能的混合 React 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Flutter与原生交互

React Native+小程序容器=更高的开发效率

来看看这是什么,Flutter学习(上)

Xamarin 为原生开发者构建跨平台 sdk

程序员踩坑之旅:将 75000 行 iOS 原生代码迁移到 Flutter!

Flutter是什么