为 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 框架为 ios 和 android 构建应用程序,提供与原生应用程序几乎相同的性能?
【问题讨论】:
【参考方案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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章