写点什么

Shopify 的 React Native 之旅

  • 2025-05-13
    北京
  • 本文字数:1383 字

    阅读完需:约 5 分钟

大小:639.18K时长:03:38
Shopify 的 React Native 之旅

使用 React Native 五年之后,Shopify 移动团队分享了大量的心得体会,重点介绍了什么有效,什么无效,以及未来的发展方向。

 

来自 Spotify 的 Mustafa Ali 说,总的来说,Shopify 工程师使用 React Native 的经验揭示了它的几个亮点。其中一个最令人鼓舞的发现是,React Native 应用可以满足严格的性能要求。不过,正如 Ali 指出的那样,这其中并没有什么隐藏的魔法,成功与否取决于能否有效地运用合适的模式


在 Shopify 的应用中,我们实现了低于 500ms(P75)的屏幕加载 [...] 。就像原生应用一样,必须运用好的模式和技术来消除性能瓶颈。


React Native 有一个可以显著加速开发的功能是热重载,它将预览用户界面变化的时间从几分钟缩短到了几乎是即时反馈。


这不仅浪费时间,还会破坏开发工作流程。React Native 的热重载功能彻底解决了这个问题。


从积极的一面来看,Ali 认为,使用 React Native 还能带来另一大优势,即提供灵活性和健壮性,并通过在 Web 和移动端之间共享代码来提高效率。


能够在多个平台上进行开发的开发人员非常有价值。这让我们能够更快地交付产品,他们能够从一种技术中汲取好的想法,并以新颖的方式将它们应用到另一种技术中去。


到目前为止,Ali 的观点与人们普遍认可的 React Native 的优点是一致的。不过,他也分享了一些不那么显而易见的见解,比如 React Native 与原生代码融合的关键作用。对于利用设备硬件且有内存限制(如首页和锁屏小部件)的特性以及长时间运行的作业来说,这一点尤为重要。


我们发现,使用 RN ,大多数功能只需构建一次,就可以在最适合的地方使用,这样可以节省大量的时间。这也是为什么在团队中有 Native 专家至关重要的原因。


Hacker News 上有几位评论者也赞同这一点,他们指出,人们对 React Native 应用的一个普遍误解是,它能让 Web 开发人员轻松地创建移动应用。其实,更准确的观点是:“React Native 是移动开发人员避免重复编写相同应用的工具”,而不是他们跳过原生学习的捷径。

 

Ali 指出,React Native 也有一些不容忽视的缺点。首先,与 Xcode 和 Android Studio 中的工具相比,React Native 的调试往往更加困难,而且不够精简。但更令人担忧的是,每次 React Native 更新往往都会带来大量的工作,有时甚至需要重组代码库。


为了缓解这一问题,我们让一个开发小组轮流处理,而团队的其他成员则专注于功能开发。


基于 React Native 的项目还有一个弱点是依赖第三方库。虽然这些库应用广泛,但它们也带来了持续维护的负担和供应链攻击的风险。

 

虽然到目前为止,Shopify 在 React Native 使用方面取得了丰硕的成果,但在 Hacker News 上,有一些评论者指出,在某些方面,他们的应用给人的感觉是质量不高。一位评论者提到,React Native “很好用,尤其是在迭代的时候,但它让最后 20% 的工作变得比原来难很多”(https://news.ycombinator.com/item?id=42729069)。其他人则强调了 Flutter 在工具性能方面的优势。不过,他们也指出, Flutter 应用 “看起来不太对劲”,因为它们依赖于非原生组件。

 

Ali 表示,Shopify 未来会更多地使用 React Native 。他们计划贡献更多代码,赞助开源项目,并采取其他措施扩大 React Native 对各组织的支持。要深入了解全部细节,请查看原文

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://www.infoq.com/news/2025/04/shopify-five-years-react-native/

2025-05-13 18:003609

评论

发布
暂无评论

​ AngularJS进阶(七)AngularJS实现根据不同条件显示不同控件

No Silver Bullet

AngularJS 12月月更 条件筛选

阿里云视觉智能开放平台——年终特惠来袭

夏夜许游

人工智能 AI 视觉 特惠

【JUC】循环屏障CyclicBarrier详解

JAVA旭阳

Java 并发 JUC

上海大数据培训机构怎么选择比较好

小谷哥

刷新AI作图速度,最快开源Stable Diffusion出炉

OneFlow

人工智能 深度学习 前沿技术

Vision Transformer这两年

OneFlow

人工智能 深度学习 NLP 大模型

实践案例:同程艺龙网的 Dubbo 升级经验总结

Apache Dubbo

Java 开源 微服务 云原生 dubbo

安全配置错误规避指南

SEAL安全

配置管理 企业安全 安全配置 配置错误 12 月 PK 榜

MASA Framework 事件总线 - 跨进程事件总线

MASA技术团队

.net MASA Framewrok MASA

web前端培训程序员学习怎么提升技术

小谷哥

大数据培训学习分析师怎么样

小谷哥

AngularJS进阶(九)控制器controller之间如何通信

No Silver Bullet

通信 AngularJS 12月月更

一种多引擎可视化数据流实现方案

元年技术洞察

数据中台 数字化转型 专利解析 方舟企业数字化 PaaS 平台

【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(上)

码界西柚

Docker Kubernetes 容器 JVM 12月日更

嵌入式系统的开发概述

timerring

嵌入式 12月月更

打造无证服务化:这个政务服务平台有点不一样

华为云开发者联盟

区块链 华为云 12 月 PK 榜

Serverless 架构下的 AI 应用开发

Serverless Devs

meta force原力元宇宙魔豹联盟矩阵公排dapp系统开发源代码

开发微hkkf5566

云原生大数据平台零信任网络安全实践技术稿

星环科技

【0.1mm钻孔】揭秘激光钻孔加工常见的4种方法

华秋PCB

工艺 PCB PCB设计 钻孔

SAP MM 使用两个STO实现免关税跨国公司间转储(II)

SAP虾客

SAP MM PO输出 NACE

React 之 createElement 源码解读

冴羽

JavaScript 前端 前端框架 React react源码

【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(下)

码界西柚

JVM 12月日更 堆外内存 内存干扰

【云享·人物】华为云AI高级专家白小龙:AI如何释放应用生产力,向AI工程化前行?

华为云开发者联盟

人工智能 华为云 AI工程化 12 月 PK 榜

web前端培训程序员学习什么呢

小谷哥

Dubbo 3.1.3、3.2.0-beta.2 正式发布

Apache Dubbo

Java 开源 微服务 云原生 dubbo

瓴羊Quick BI数据大屏,服务企业数字化转型发展

巷子

旺链科技荣膺“2022上海软件核心竞争力企业”

旺链科技

区块链 产业区块链 12 月 PK 榜

云小课|云小课带你玩转可视化分析ELB日志

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

大数据培训学习编程技术的方法有哪些

小谷哥

将 Vue.js 项目部署至静态网站托管,并开启 Gzip 压缩

华为云开发者联盟

开发 华为云 12 月 PK 榜

Shopify 的 React Native 之旅_软件工程_Sergio De Simone_InfoQ精选文章