日前,Facebook 开发者大会如期举行,大会上宣布了 Facebook 网站和 App 的改版,其中,网站的改版使用 React+GraphQL+Relay 开发,研发团队也对其做了分享:
链接:
https://developers.facebook.com/videos/2019/building-the-new-facebookcom-with-react-graphql-and-relay/
App 的改版则使用了 React Native,其实 Facebook 的主 App 在过去一直有使用 RN,不过只是一小部分,而在这次改版中,进一步扩大了 React Native 的应用范围,在 F8 大会上,Facebook 的工程师分享了《Mobile Innovation with React Native, ComponentKit, and Litho》,可以通过下面的链接查看:
链接:
https://developers.facebook.com/videos/2019/mobile-innovation-with-react-native-componentkit-and-litho/
事后,其中一名工程师 Eli White 在 Twitter 上分享了 React Native 近期的一些进展。
首先,在 Facebook 里面 RN 的使用是很广泛的,目前使用 RN 的产品包括:Ads Manager, Oculus Companion, Marketplace, Dating, Jobs, Profile, Settings, Blood Donations, Crisis Response 等等。
Eli 本身所在的团队在 17-18 年帮助开发 Marketplace,它是 Facebook 应用的重要功能模块,形态类似于小红书之类导购产品。它在短时间内就发展到拥有美国三分之一的用户量。
Eli 也提到了 Airbnb 放弃 RN 带来的影响,这个事件不仅在社区造成影响,在内部也引起了对 RN 所开发产品的质量的担忧。
在 Eli 团队的帮助下,Marketplace 成为 Facebook 所有 App 中质量最好的一批之一。他分享了三条如何使用 RN 开发高质量产品的经验:
首先团队里需要有精通原生平台用户体验的专家,开发 RN 应用和开发 Web 应用是不同的,用户期待的是原生级别的体验,而 Web 相比之下尚有差距。
高质量的应用并不简单,不管你是使用何种语言或框架,你需要花时间打磨用户体验。Eli 分享了一个系列视频《Can it be done in React Native?》
https://www.youtube.com/playlist?list=PLkOyNuxGl9jwHSudiiW5TeRCBDwkYyV7l
你并不需要在所有地方都使用 JS,在需要原生的地方使用原生代码,在 RN 团队里拥有精通移动开发的成员会带来很大好处。
Eli 在去年优化 Marketplace 的过程中,将它的启动时间减少了 50% 以上,并且这还不是极限!Eli 说他们未来将会把其中最大的改进合并到 RN 代码中。
React Native 团队相信 RN 足以满足 Facebook 对应用质量和性能的需求,而为了达到这个目标,他们重新思考了 RN 的内核应用是怎样的。
而思考的结果就是去年 RN 的大规模重构,他们使用 C++ 重写了 RN 的核心部分,工程师 Parashuram 在 2018 年的 React Conf 上分享了其中的细节:
https://www.youtube.com/watch?v=UcqRXTriUVI
InfoQ 旗下前端之巅之前也分享过京东工程师熊文源对重构的分析:
React Native 社区在 2018 年也取得了较大的进展,RN 的 Github 项目的独立贡献者已经超过一万人,这是目前 Github 第二高的。
之前 RN 团队在处理社区的 PR 请求时不太及时,而现在他们已经着重改进了这点,在过去的几个月他们已经合并了超过 600 个 PR 请求。
Expo 现在支持编写纯 RN 应用并部署到 Android/iOS 和 Web 平台,这也是社区长期呼吁的重要特性,细节参见:
https://blog.expo.io/expo-cli-and-sdk-web-support-beta-d0c588221375
RN 得到了微软的大力支持,你可以用 RN 直接编写 Windows 平台的 UWP 应用,在 5 月 6 号的微软 Build 大会上,微软的工程师将分享《React Native on Windows》。
Facebook 自家的头戴式 VR 设备 Oculus,大量使用 RN 开发他们的 VR App,包括 Oculus Venues,它可以让用户置身虚拟的球场看台,观看比赛,并和其它观众一起欢呼。
点个在看少个 bug
1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“InfoQ”微信公众号,文章版权归InfoQ公众号所有。