1、谷歌母公司Alphabet第一季度营收同比增长15%,但是公司的重心转移到AI上面了2、Python团队裁掉不过好像在德国重新组建团队了我觉得这个比Flutter裁员影响大,Python以后会怎么样不确定啊3、Flutter团队也受裁员影响
我们知道Flutter相对于其它跨平台开发框架,一个很大的优势就是官方的投入力度从下一代渲染引擎Impeller如此快的进入可用状态就能看出来那么后续官方的投入力度可能会有所减少这种影响大概率是先影响到PC、web端的,Android和iOS可能会少一点但是具体对手机端有多大影响,还需要继续观望可以看一下5月14号的GoogleI/O大会,应该会有所端倪
Flutter是谷歌投入大量资源打造的项目目前已经取得了很大的进展,是跨平台领域的老大所以不用担心会像很多谷歌的实验项目一样对待目前Google内部已经在移动、Web和桌面平台上部署了Flutter应用,包括“NearbyShare”、Play管理中心应用、GoogleCloud移动应用和Google课堂练习集
而本次谷歌裁员其实从另一个侧面也证明了放弃Flutter的可能性不大如果是不重要的实验项目,可能就直接整体裁掉了或者像Python团队那样,在低成本的地方重新搭建但是Flutter的核心团队并没有大的变动说明至少在中短期内Flutter的定位还没有变化谷歌应该不会放弃Flutter
大家可能最关心的还是这件事对我们开发者的影响我的观点有两个:1、Flutter仍然是跨平台的最优选择2、长周期、大用户量项目做好容错规划
如果你的项目正在考虑跨平台开发那么不要受这些无关信息的干扰可以优先选择Flutter作为项目的核心技术栈因为目前在跨平台领域,没有比Flutter更好的选择
首先,性能方面的领先这方面就不展开讨论了简单来说Flutter性能是非常接近原生的而RN、Uniapp这种基于JS中间层的跨平台方案在性能上都有较大的损失
其次,在开发体验方面的领先Flutter因为其自带渲染引擎的架构设计目前已经发展成一个完整且完善的开发框架就开发框架本身的完善程度来说,很多地方甚至比原生要有优势比如单元测试、热重载在这方面RN、Uniapp其实都有较大差距之前一个朋友就碰到很现实的问题
为什么要限定长周期、大用户量项目?因为3~5年以内生命周期的项目,其实不用考虑太多一方面Flutter大概率能活到那个时候另一方面,即使Flutter被谷歌放弃了,也不是马上就不能用了你通过Flutter开发的App仍然可以正常的上架发布、更新只不过谷歌后续不会继续更新而已而且还有很大的可能谷歌放弃社区接手
但是对于长周期、大用户量的项目,确实要做好容错的规划比如我们团队的项目预计未来10年都还在目前的月活是3000万以上(也不算大用户量哈)而我们的代码50%以上都是Flutter开发的那么不仅仅是对Flutter,对我们所有采用的技术方案来说都需要考虑黑天鹅事件发生后的容错
如何容错?这里所说的容错不是说如果Flutter不能用了你的项目不受任何影响这是无法做到的即使能做到,我觉得为了小概率事件支付这样的成本也是不划算的
这里说的容错主要是指黑天鹅事件发生后的应对方案针对Flutter来说,我们建立了两套应对方案
短期方案短期方案是指如果Flutter突然不可用了如何应对核心思想是利用Flutter工具链支持将Flutter代码编译为JS代码的功能当出现使用Flutter开发的App无法正常发布、运行等场景时我们可以利用Flutter工具链,将Flutter开发的页面转换为web页面然后利用App中内嵌webview的方式进行快速降级当然还有一些前提,我们的App是混合开发,并且已经有少量页面使用H5展示
这种方案并不理想,会造成用户体验下降所以主要是作为Flutter突然无法正常使用这种极端场景下的快速应对
中长期方案前面也说了,Flutter突然无法使用其实是一种极低概率的极端场景因为即使Flutter被谷歌放弃了,也不会说马上就不能用了我们使用现有版本的Flutter开发App并发布是不受影响的
我们以替换为原生页面为例:
第二,把少量核心页面(比如主页)替换为原生页面为什么先替换主页?一方面从路由管理来说,大多数页面都是从主页跳转的主页切换到原生后大部分Flutter页面就相对比较独立了另一方面主页还承载了很多额外的功能比如用户打开App后的活动弹窗那么把这些功能切换回原生后就相当于把很多核心功能也切换到原生了
核心页面切换到原生后可以先发布一个版本看看用户使用有没有问题因为有些问题仅仅靠测试团队是发现不了的
第三,各个独立页面的切换规划如果第二步的功能上线后没有太多的问题就可以安排其它Flutter页面的逐步切换计划了这时候其实绝大部分Flutter页面都是相对比较独立的可以一个模块一个模块的排期,同时也不太影响其它项目需求的开发
好了,前面就是我们为App设计的两套容错方案这两套方案都是为了应对低概率的事件做的预案但是衷心希望这些预案都没有被用到的那一天
最后,Flutter是我做客户端开发这么多年来用过的最好的框架了,特别是对TDD的支持衷心的希望Flutter能发展的越来越好