哈喽,我是老刘
前几天有朋友说看到一篇Medium上的文章,说Flutter快亖了
Stop using Flutter, it will die, sooner than you think (and improve your product instead ??). | by Christopher Saez ?? | Apr, 2024 | Medium
我去看了一下
作者提出了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被放弃呢?
不知道大家听说过墨菲定律没有
以是对于短期项目,比如生命周期只有一两年的app
完全不用担心这个标题,由于纵然Flutter被谷歌放弃了,也不是说Flutter开发的App就马上不能用了
只是Flutter官方不会更新新的版本,不会去修复bug了
但是如今开发的App仍然可以正常上架运行
完全可以或许支撑到App的生命周期结束
而对于大型项目来说,其生命周期可能会很长
如果Flutter被放弃,那么对这种项目的影响可能会比力大
但是也不用因噎废食
由于Flutter确实是如今跨平台开发的最佳选择,如果仅仅是由于这种低概率的事件就放弃有些得不偿失
另一方面,就像前面说的,纵然Flutter真被放弃了也不会马上就不能用
真的到了这个时候,我们照旧可以使用Flutter的混淆开发特性
在一到两年的时间窗口内渐渐切换回原生开发
另外也可以使用Flutter可以转换为web页面的特性,实现快速降级的操作
这个之前也写过文章,感爱好可以看这里:
Flutter 2 解决了末了的顾虑 - 知乎团队使用Flutter混淆开发快两年了,因此对Flutter的版本更新保持极高的关注度。 Flutter 2可以说是这两年里最故意义的版本,它的新特性解决了我们在Flutter开发中对平台自己末了的几个顾虑。 如果苹果禁用Flutter…https://zhuanlan.zhihu.com/p/356708304
总的来说就是纵然Fuchsia 团队裁员,也不代表Flutter被放弃
但是Flutter被放弃的风险也不是不存在
那么纵然Flutter被放弃,也不代表你开发的App就会受影响
纵然你开发的App受影响,也有至少两种短期、中期的降级方案
以是针对这个标题也不用太过担心
第二点,iOS步伐员不喜欢Flutter
这个我是Android开发出身的,没有第一手的发言权
不外我们团队是Android和iOS混淆开发团队
团队里有一半小同伴都是iOS步伐员
从我的观察来看,至少我们团队里的小同伴都还蛮喜欢Flutter和Dart的
平时工作中有些需求可以选择用Flutter照旧原生的时候,大家基本都更倾向于选择Flutter
为啥会这样?我觉得可能的一个缘故起因
Dart语言相对于swift和oc都会简单一点
一样平常开发工作大部分环境下,我们用不到语言的复杂特性
这种环境下,简单清楚的编程语言不管是写代码照旧看别人的代码,都更舒服
第三点,Flutter技能还不成熟
其实如今Flutter的成熟度和稳定性已经比我们刚开始用的时候好很多了
这两年Flutter的生态其实也希望的很迅速
当然和前端那庞大的生态确实不能相提并论
但是支撑一些常规项目完全没有标题
有些人可能担心Flutter项目需要写大量的原生代码来调用体系的各种功能
坦率说,我们的项目是Flutter+原生的混淆开发项目
这两年新增需求的开发中,除了通过channel调用我们自己的原生代码功能外
所有调用原生体系相干的功能我们都是通过Dart代码调用pub上的库完成
这其中包括相机预览、定位、数据库、数据加解密等
其实这两年我们险些没有开发过原生层面的新功能,顶多在原生模块上缝缝补补
所有的新增功能都是在Flutter层面开发的
第四点,KMM比Flutter更好
起首,作为一个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开发手册》https://mp.weixin.qq.com/s?__biz=MzkxMDMzNTM0Mw==&mid=2247483665&idx=1&sn=56aec9504da3ffad5797e703c12c51f6&chksm=c12c4d11f65bc40767956e534bd4b6fa71cbc2b8f8980294b6db7582672809c966e13cbbed25#rd
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |