有人说Flutter马上就要亖了

哈喽,我是老刘
前几天有朋友说看到一篇Medium上的文章,说Flutter快亖了
Stop using Flutter, it will die, sooner than you think (and improve your product instead ??). | by Christopher Saez ?? | Apr, 2024 | Medium

image.png


我去看了一下
作者提出了4个观点:
1、Flutter正在被谷歌放弃,因为Fuchsia系统被放弃了
2、iOS程序员不喜欢Flutter
3、技术不成熟
4、KMM更好

我们可以分别看一下这四个观点是不是有道理

第一点,Flutter正在被谷歌放弃

作者的说法是Fuchsia团队裁员,似乎这个操作系统逐步被谷歌抛弃了
那么作为这个操作系统的开发组件,Flutter也就被放弃了

首先,我没确认过Fuchsia团队裁员这个消息的真实性
其次,我觉得Flutter和Fuchsia并不是依存的关系

其实Flutter最早被开源到Github上是2014年10月,那时候还不叫Flutter,好像叫Sky
而Fuchsia 最初于 2016 年首次亮相于谷歌代码库与 GitHub
2015年10月,这个开源项目的名字被改为Flutter
2017年5月,Google 在 I/O 大会上正式向外界公布了 Flutter
当时谷歌说开发Flutter的主要目的是“为了改进和简化 Android 应用的 UI 开发过程”

当然Flutter的目标之一确实是作为Fuchsia OS的开发套件
但是这并不代表着Flutter只服务于Fuchsia OS

其实从Flutter团队在Android和iOS上的投入也能看出这一点
2021年Flutter团队开始启动新的渲染引擎Impeller
2022年8月Impeller引擎合入Flutter Engine主干
按照Flutter官方的路线图,今年(2024)iOS端会放弃Skia而切换到Impeller
Roadmap · flutter/flutter Wiki · GitHub

如果Flutter只是Fuchsia操作系统的开发套件
团队不会在Android和iOS平台上投入如此大的资源开发一套新的渲染引擎的
要知道开发渲染引擎可比搞一个sdk麻烦多了

好了,前面说了这么多,其实只是想说明Flutter和Fuchsia 并不是强依赖的关系
即使Fuchsia真的被放弃了,也不代表Flutter就被放弃了
那我们是不是不用担心Flutter被放弃呢?
不知道大家听说过墨菲定律没有

image.png

所以对于短期项目,比如生命周期只有一两年的app
完全不用担心这个问题,因为即使Flutter被谷歌放弃了,也不是说Flutter开发的App就马上不能用了
只是Flutter官方不会更新新的版本,不会去修复bug了
但是目前开发的App仍然可以正常上架运行
完全能够支撑到App的生命周期结束
而对于大型项目来说,其生命周期可能会很长
如果Flutter被放弃,那么对这种项目的影响可能会比较大
但是也不用因噎废食
因为Flutter确实是目前跨平台开发的最佳选择,如果仅仅是因为这种低概率的事件就放弃有些得不偿失
另一方面,就像前面说的,即使Flutter真被放弃了也不会马上就不能用
真的到了这个时候,我们还是可以利用Flutter的混合开发特性
在一到两年的时间窗口内逐步切换回原生开发
另外也可以利用Flutter可以转换为web页面的特性,实现快速降级的操作
这个之前也写过文章,感兴趣可以看这里:
Flutter 2 解决了最后的顾虑 - 知乎团队使用Flutter混合开发快两年了,因此对Flutter的版本更新保持极高的关注度。 Flutter 2可以说是这两年里最有意义的版本,它的新特性解决了我们在Flutter开发中对平台本身最后的几个顾虑。 如果苹果禁用Flutter…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/356708304

总的来说就是即使Fuchsia 团队裁员,也不代表Flutter被放弃
但是Flutter被放弃的风险也不是不存在
那么即使Flutter被放弃,也不代表你开发的App就会受影响
即使你开发的App受影响,也有至少两种短期、中期的降级方案
所以针对这个问题也不用太过担心

第二点,iOS程序员不喜欢Flutter

image.png

这个我是Android开发出身的,没有第一手的发言权
不过我们团队是Android和iOS混合开发团队
团队里有一半小伙伴都是iOS程序员
从我的观察来看,至少我们团队里的小伙伴都还蛮喜欢Flutter和Dart的
平时工作中有些需求可以选择用Flutter还是原生的时候,大家基本都更倾向于选择Flutter

为啥会这样?我觉得可能的一个原因
Dart语言相对于swift和oc都会简单一点
日常开发工作大部分情况下,我们用不到语言的复杂特性
这种情况下,简单清晰的编程语言不管是写代码还是看别人的代码,都更舒适

第三点,Flutter技术还不成熟

image.png

其实现在Flutter的成熟度和稳定性已经比我们刚开始用的时候好很多了
这两年Flutter的生态其实也进展的很迅速
当然和前端那庞大的生态确实不能相提并论
但是支撑一些常规项目完全没有问题

有些人可能担心Flutter项目需要写大量的原生代码来调用系统的各种功能
坦白说,我们的项目是Flutter+原生的混合开发项目
这两年新增需求的开发中,除了通过channel调用我们自己的原生代码功能外
所有调用原生系统相关的功能我们都是通过Dart代码调用pub上的库完成
这其中包括相机预览、定位、数据库、数据加解密等
其实这两年我们几乎没有开发过原生层面的新功能,顶多在原生模块上缝缝补补
所有的新增功能都是在Flutter层面开发的

第四点,KMM比Flutter更好

image.png

首先,作为一个Android开发出身,我是很喜欢KMM的
而且作为一个曾经沉迷函数式编程语言的程序员,我个人也更偏爱那些灵活且强大的编程语言,比如kotlin
如果只能选择一种语言做开发,我肯定选择kotlin而不是Dart
对于kmm,我也是充满了期待的,毕竟在Android上那差不多就是原生了
如果有一天kmm超越Flutter成为跨平台开发的最佳选择,对我们Android开发来说是多美好的事情

回到现实,至少到目前为止kmm还没有超越Flutter
换个说法,目前来看Flutter仍然是跨平台开发的最优选择
而且对kmm我还是有些担心的:
1、在客户端开发方面从我的实践经验看,UI部分的开发比例是很高的,平均下来估计能到40%甚至更高
而kmm在UI层面没有什么优势
在实战中可能会碰到和uniapp类似的,需要大量的在各个平台单独进行的调试的工作
2、kotlin对iOS程序员可能更不友好
对比kotlin和dart,我觉得dart相对要简单不少
对于非Android出身的程序员来说,可能kotlin的学习曲线比dart还要陡吧

总结

好了,前面就是我对这些观点的自己的看法
总的来说就是现阶段Flutter是跨平台最好的选择
长期来看要警惕风险做好容错的准备
如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDMzNTM0Mw==&mid=2247483665&idx=1&sn=56aec9504da3ffad5797e703c12c51f6&chksm=c12c4d11f65bc40767956e534bd4b6fa71cbc2b8f8980294b6db7582672809c966e13cbbed25#rd

  • 29
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值