Udacity也弃用React Native了 !
不久之前,Airbnb 团队刚刚宣布放弃使用React Native,才过不久,Udacity移动团队最近也宣布从App中移除了使用React Native开发的最后一批功能。再加上6月中旬,Facebook宣布将大规模重构RN,这一系列的事件,让不少正在使用React Native的开发者瑟瑟发抖,陷入了恐慌之中。
在本文中,Udacity团队将告诉大家他们使用React Native的历程以及放弃他们的原因,也希望给一些开发者一些参考和启发,看自己是否适合React Native。
以下来自Udacity移动团队的自述:
Udacity移动团队
Udacity的移动团队分为iOS和Android两个团队。
团队规模
在引入React Native时:
- 1个iOS开发
- 2个Android开发者
- 1个项目经理
- 1个设计师
现在:
- 4个iOS开发者
- 3个Android开发者
- 1个项目经理
- 1个设计师
在使用React Native的18个月中,我们的iOS和Android团队规模都有所增长,整个团队由一名项目经理来领导。
期间,我们还经历了向多设计师和多设计范式转型。
开发背景
在引入React Native时,我们iOS团队唯一的开发人员非常乐于使用React Native,这极大丰富了他之前Javascript和Web的开发经验。两位Android开发人员中的一位对Javascript有丰富的经验,而另一个只有很少的Javascript、React或Web经验。
现在,四个iOS开发人员中至少有三个非常乐于使用Javascript和React Native。后来加入团队的其他Android开发人员也只有很少的Javascript或Web经验。
Udacity的App
用途
Udacity的移动app旨在将Udacity的学习体验带到用户的移动设备上。它支持身份验证、内容发现、程序注册(在某些情况还支持支付),以及消费各种类型的学习资料。
Udacity的App也作为新的实验性功能和旨在提升用户整体学习效果的活动的试验场。
代码库的大小
iOS:97,400行(.swift、.h、.m) Android:93,000行(xml、java、kotlin、gradle)
Udacity为什么以及如何采用React Native?
为什么要引入它?
当时,Udacity正准备推出全新的移动端专用功能。我们希望在两个平台上快速进行实验和验证,因此跨平台具有很大的吸引力。
可以总结为以下几点:
- 跨平台解决方案具有更高的可行性
- 大多数(2/3开发人员)团队成员非常适应Javascript和Web开发
- 可以提高开发速度
- 来自公司之外其他团队的成功案例
Udacity是如何引入的?
React Native的初始特性是在一个单独的GitHub代码库中构建的,然后作为git子树分别并入iOS和Android代码库。
这样可以进行非常快的原型设计,并且如果有必要,可以将某些功能作为独立产品发布。
Udacity团队设计了很多原型,最终在React Native代码库中引入了第二个更大的功能。
时间线
- 2016年8月:为功能1创建React Native代码库
- 2016年11月:在Android上发布了功能1
- 2016年11月:开始开发功能2
- 2016年12月:设计功能3原型
- 2017年1月:功能1开发结束
- 2017年2月:功能2发布
- 2017年3月:功能3原型设计结束
- 2017年11月:在Android上更新功能2
- 2017年12月:功能4原型作为独立app发布。最终由于性能问题取消了对原生的支持
- 2018年2月:在iOS上更新功能2
- 2018年4月:从Android中移除功能1
- 2018年6月:从两个app中移除功能2
为什么要移除React Native?
原因很简单。因为剩下的唯一一个React Native功能已经没有用了,我们不再需要支持它。