Categories
程式開發

耗时三年,向React迁移的利与弊


2017年,可汗学院( https://blog.khanacademy.org)开始在iOS和Android应用中使用React Native。到了今年,这一迁移工程终于来到了终点,可汗学院应用中的所有页面都转到了React Native上。

2017年,可汗学院之所以开始这一实验,主要是基于以下考虑:

  • iOS和Android应用的设计几乎是一致的,交互设计、功能和内容都没什么区别。
  • 维护两个代码库是很困难的事情,尤其是这两个代码库还具有不同的数据设计、错误和开发新功能时的考虑要素。
  • 学院的移动开发团队很小,因此迁移工作不会涉及大批工程师。
  • 学院的网站已经在使用React了,因此学院的开发团队具备相应的专业知识,以及帮助迁移的概念和工具。

下面具体讲一下维护两个代码库所要面临的挑战。

  • 不同的平台上会出现不同的错误。当然,React Native也会有这种情况,但是出现概率就小得多了。
  • 开发新功能需要针对两个平台分别考虑设计、工程和测试工作。这意味着你至少需要两名工程师(iOS和Android),并且他们最好共同工作——对于像可汗学院这样小规模的团队来说这是很大的负担。
  • 功能和设计一旦构建好后就很难调整,因为每次调整都需要在两个平台上各来一次。
  • 平台之间的架构差异很大。可汗学院的iOS代码库比Android代码库大四岁。iOS有Swift、ReactiveCocoa、Cartography和CoreData。Android则有自己的一组依赖项和数据流设计。这些差异累加起来,让平台之间的功能复用变得很复杂,对比两个平台的代码也不容易,于是团队相当于被平台分割成了两部分。

原文链接:【https://www.infoq.cn/article/mSRZT6XOgIB8glQfH2lK】。未经作者许可,禁止转载。