Shopify 在移动应用开发领域有着多年的经验积累,近期决定将全面转向使用 React Native 来构建新的移动应用。这一决定背后的考量和实践过程很值得一读。
无论是哪个季度,大多数消费者都是在移动设备上下单的(去年第三季度,Shopify 有 71% 的顾客通过移动设备下单)。在黑色星期五(Black Friday)和电商星期一(Cyber Monday)期间,Shopify 商家在移动设备上的购买量又增加了 3%,平均占销售额的 69%。那么为什么要切换到 React Native?为什么现在切换?这一变化是如何融入 Shopify 的原生移动开发流程的?让我们一起探讨。
在 2019 年之前,Shopify 的移动开发一直是基于原生技术实现的。Shopify 的工程文化之一是押注某些早期技术来帮助快速发展。2015 年,Facebook 发布并开源了 React Native,这个框架使用 React 构建原生移动应用程序。虽然 Shopify 当时就看到了 React Native 的前景,但由于性能表现不佳和 Android 支持缺乏等原因,并没有将其用于完整的移动开发工作。
直到 2018 年底,Shopify 决定用 React Native 重新编写其最受欢迎的消费类应用之一 - Arrive。Arrive 的 iOS 和 Android 版本现在都基于 React Native 开发,并且共享了 95% 的代码。这次重写带来了诸多好处,包括 iOS 应用的崩溃次数更少,推出了 Android 版本,以及由移动和非移动开发人员组成的团队。
随后,Shopify 在自家的旗舰级 Point of Sale(POS)应用上进行了为期 6 周的 React Native 实验,并决定在 iOS 上原生构建新版 POS,在 Android 上使用 React Native。这是为了满足商家对 POS 应用响应能力的要求,并对 React Native 的工程速度和应用性能进行基准测试。
Shopify 的 Compass 团队也深入研究了原生、Flutter 和 React Native 等技术选项,最终选择了 React Native。Compass 的 iOS 和 Android 版本只用了不到 3 个月就发布了,并且两个版本之间共享了约 99% 的代码。
总的来说,Shopify 现在认为 React Native 已经成熟到可以用于构建所有新的移动应用。为此,他们正在设置两种类型的团队:工具链团队和基础团队,分别负责工程设置、集成、部署,以及 SDK、代码重用和开源。未来,Shopify 还将进行一些 React Native Web 的实验,尝试在桌面和移动 Web 应用中使用相同的技术栈。