2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Shopify 将应用迁移到 React Native,跨平台代码达到 86%,旧代码减少 180 万行

  • 2024-11-15
    北京
  • 本文字数:1082 字

    阅读完需:约 4 分钟

大小:485.20K时长:02:45
Shopify将应用迁移到React Native,跨平台代码达到86%,旧代码减少180万行

我们刚刚完成了将 Shopify 移动应用迁移到 React Native 的工作。这是我们最大的一个应用,开发至今已经超过十年的时间。以下是迁移过程。

 

我们增加了 68.3 万行新代码,同时删除了 250 万行旧代码,净减少 180 万行。我们将 586 个页面迁移到 React Native,并移除了 232 个过时的页面。

 

现在我们在 iOS 和 Android 平台之间共享的代码达到了 86%,而之前只有 5%。现在,在不同平台之间保持功能一致性不再是问题。

 

性能优化是我们关注的一个重要方面。我们将屏幕加载时间缩短了 59%,应用启动速度提升了 44%,网页视图速度也加快了 63%。

 


https://twitter.com/i/status/1695098627683721341

 

我们减少了每个应用版本约 50 万次的崩溃,显著提升了应用的稳定性,实现了超过 99.9%的无崩溃用户会话。

 

我们的用户也注意到了这些改进。我们的 28 天平均应用商店评分在 iOS 上从 4.4 提高到了 4.8,在 Android 上从 4.1 提高到了 4.4。

 

苹果和谷歌也注意到了这些改进。在迁移过程中,我们的应用被特别推荐了 5 次。

 


https://x.com/mustafa01ali/status/1801721357111279991/video/1

 

我们致力于开源贡献,希望回馈社区。我们开发并开源了 Flashlist,它现已成为使用 React Native 构建高性能清单功能的标准方式。

 


https://twitter.com/i/status/1542542577953644544

 

我们与 @wcandillon 合作,促成了 React Native Skia 的诞生。这一创新将 Skia 图形库引入 React Native,使得实现高质量的 2D 图形绘制和动画成为可能。

 


我们为 @swmansion 在 Reanimated 项目上的工作提供赞助,这个项目让 React Native 能够提供高质量的动画效果。

 


https://twitter.com/i/status/1630590156255240193

 

我们开发并开源了 Tophat,用于实现构建的应用一键安装。

 


https://twitter.com/i/status/1825920486666084360

 

我们从迁移中学到的东西:

 

  1. 原生代码和原生开发至关重要。任何东西都无法替代通过构建高质量移动应用所积累的经验和独到的品味。

  2. 将 100%使用 React Native 作为目标是不明智的。在任何情况下,只要原生是最适合实现功能的地方(小部件、Siri、手表应用等),或者在有高性能要求的地方,都应该使用原生。

  3. 获得良好的性能需要不断的努力,并且应该从一开始就将其作为一个优先事项。全面测量性能指标,并毫不留情地对每一层进行优化。引入自动化监控来捕捉性能回退。

 

总的来说,React Native 为 Shopify 带来了生产力的飞跃,同时使我们能够在适当的情况下继续使用原生技术的优势。我们对 React Native 的未来发展充满期待,并将继续与 Meta 和社区合作,让它变得更好。

 

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

 

原文链接:https://threadreaderapp.com/thread/1853619638141071573.html

2024-11-15 08:009530

评论 1 条评论

发布
用户头像
近日(2018年06月20日),Airbnb(爱彼迎) 技术团队在 Medium 上宣布,放弃使用 React Native,将回归到使用基于原生技术的自有框架开发 App。

https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a
2024-11-15 11:43 · 北京
回复
没有更多了
发现更多内容

中国自动驾驶行业最大智算中心亮相 毫末顾维灏:毫末车端感知架构实现跨代升级

科技大数据

汽车

多位AI学者、行业大牛、企业家齐聚2023 HAOMO AI DAY分享自动驾驶行业前沿洞见

科技大数据

选购LED显示屏时需要注意8个技术参数

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

Button(按钮)与ImageButton(图像按钮)

芯动大师

Android Studio button imagebutton

追求技术极致 探索落地先机 毫末智行城市NOH公布未来产品规划

科技大数据

新能源汽车

分享 7 个不错的 AI 工具

devpoint

人工智能 AI openai

8 个很酷的 GitHub 技巧

devpoint

GitHub vscode 开发技巧

Guitar Pro2024最新免费版吉他打谱软件下载

茶色酒

Guitar Pro Guitar Pro8 guitar pro2023

《零基础学 Python(2023 版)》学习笔记 Day0

IT蜗壳-Tango

Python编程 IT蜗壳教学

VSCODE 配置远程调试环境

eng八戒

ide vscode 服务器

如何让你的架构设计应用做到高内聚、低耦合?

风铃架构日知录

Java 程序人生 后端 架构设计 后端开发

OpenTelemetry日志体系

骑牛上青山

Java 日志 log 调用链 OpenTelemetry

怎么用vscode创建工程

eng八戒

ide vscode koa

三年成功实现7次OTA升级!MANA六大闭环成毫末产品迭代强大助力

科技大数据

元器件温度系数(ppm/℃)是什么?

不脱发的程序猿

元器件温度系数

2023-01-07:hyper/docker-registry-web是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

福大大架构师每日一题

云原生 k8s k3s 福大大

无线配置多一个路由器作为家庭wifi的无线热点?

eng八戒

家庭网络 热点

HAOMO AI DAY速递:六大闭环、MANA五大模型助力毫末智能驾驶产品快速迭代

科技大数据

用 SwiftUI 实现 AI 聊天对话 app - iChatGPT

37手游iOS技术运营团队

ios SwiftUI openai ChatGPT

MySQL字符集和排序规则详解

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

TSDB助力井下位置服务

CnosDB

数据库 IoT 时序数据库 开源社区 infra

盘点毫末智行AI DAY:智算中心成立、六大闭环、MANA五大模型...助力毫末智能驾驶产品快速迭代

科技大数据

极客时间运维进阶训练营第十周作业

老曹

尝试阅读理解一份linux shell脚本

eng八戒

bash Shell Linux Kenel 脚本

【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)

码界西柚

redis 数据同步 1月日更 数据同步工具 RedisShake

社交视频直播一对一交友APP源码之Android如何打包APP

山东布谷科技胡月

语音直播app开发

直播交友一对一视频语音APP项目系统架构和模式分析(成品1对1源码)

山东布谷科技胡月

视频语音直播app开发 语音直播交友系统搭建 社交app开发 1v1语音系统搭建 视频社交APP开发

运维训练营第十一课作业

好吃不贵

毫末智行稳健收官2022“三大战役” 火力全开打响2023“四大战役”

科技大数据

智能汽车

使用 App Store Connect API 批量创建内购商品

37手游iOS技术运营团队

AppleParty 苹果派 App Store Connect API 批量创建内购IAP 批量上传 IAP

线上压测

agnostic

Shopify将应用迁移到React Native,跨平台代码达到86%,旧代码减少180万行_架构/框架_Mustafa Ali_InfoQ精选文章