江湖上没有Flutter的声音了
原来国内Flutter的领头“鱼” `闲鱼` 偃旗息鼓之后,大厂们的主流技术栈对Flutter更加没有了积极的目光。
Flutter的开发者们跟这个技术栈一样年轻崭新,市场上成熟的方案还是稳妥多了,大不了多招点人,大厂们又不是没有这个钱。
小公司冒进的虽有,但这年头,谁还开发APP啊,背靠小程序的数十亿流量的大树乘凉不香吗?
2021...2022...Flutter这个词消失在前端娱乐圈的头条里,连Flutter3.0的发布也没有激起任何水花。
中文互联网上搜索“Flutter”,最单纯的疑问句最扎心。
但flutter的精神不朽
2021年,weex开发组内负责人发表文章"五年陈的Weex,聊聊它的过去现在和未来"称,阿里内部正在升级weex 2.0架构。
文中说:
从 Flutter 的视角来看,背后有两点思考:“Flutter 要是不用 Dart 开发该多好” 和 “Flutter 要是能支持 Web 标准该多好” 。
Weex 2.0 的渲染引擎使用 C++ 开发,复用了 Flutter Engine 的大部分代码,不含 DartVM,与 Flutter Framework 没有直接关系,是两条互不影响的链路。渲染引擎是在 JS Engine 之下的,对 JS 没有依赖,可以支持多语言;借鉴了 Flutter 的线程模型和次线性的布局算法,实现的标准是 CSS 子集,支持的范围远超 1.0 的状态,语义化标签、富文本、样式简写继承、层叠上下文、选择器等各项功能也更加标准化;渲染管线面向 Web 的技术特点设计,没有 Widget,更加贴合前端的技术栈。
基本上,使用了Flutter Engine来渲染,并希望其支持前端惯用的技术栈。
hybrid的经典代表、阿里的weex做出了这样的决定,腾讯呢?
微信小程序的`Skyline`(beta)渲染引擎文档不妨再细看。
在光栅化策略上,Skyline 采用的是同步光栅化的策略,WebView 是异步分块光栅化的策略。
同 WebView 传输 CSS 文本不同,Skyline 在后台构建小程序代码包时会将 WXSS 预编译为二进制文件,在运行时直接读取二进制文件获得样式表结构,避免了运行时解析的开销(预编译较运行时解析快 5 倍以上)。
框架的代码之间无需再通过 JSBridge 进行数据交换,减少了大量通信时间开销
从特点来看,渲染方式基本就是flutter的思想。
也有人认为直接使用了flutter的方案。
相关日志 wechat skyline flutter logcat · GitHub
)如何评价微信小程序新渲染引擎skyline? - 鲁小夫的回答 - 知乎
虽然表面上大家都散了,但内心里对flutter engine还是念念不忘,半夜做梦醒了嘴里念的都是flutter的名字。
为什么凉了
(以下是个人主观看法)
热量下降已是事实,Flutter 引擎千般好,为什么还是凉了?
原因有太多。
首先,flutter有一点跟weex挺像,刚发布时生态缺少,许多bridge/插件都要靠会写安卓又会写ios的社区能人贡献——大家要是会,谁还来凑这个热闹? 这一下子就跑了。
然后,吸引来的前端们又是一个大失望。又什么dart,又没有模板化语言,你这个俺们前端就很难接受啊。这陌生的技术栈,还都是新bug,谁爱学谁学吧。
最后,Flutter到底能不能热更新?苹果到底怎么看?
从技术实现上,按理说,是可以的。Flutter自己内置一个渲染引擎(Flutter Engine),实时拉取远端再本地渲染就行,谁能拦他?
———可软件安全和商店审核不允许。
目前的flutter还是没有热更新(远程更新),有人就认为是为了商店审核等原因。
(虽然市场上总有黑科技。
还有更一个更现实的问题,苹果商店对flutter APP的审核态度如何?
作为保守、垄断的代表,苹果对flutter APP的态度是最被关注的。
隔三岔五就有人问:
Aren't you guys afraid that Apple might stop accepting flutter apps?
What is Apple's opinion on the future development of flutter
目前来看,不能热更新的fluttter在ios商店的待遇跟react native是差不多的。
梦幻未来
在目前flutter3.0已经能支持6端(安卓,IOS,web,windows,macOS、linux) 的美好现实中,多少front-end工程师希望能早日实现真正的大一统。
别说webview,直接跳过native UI,调用C++源码,自渲染引擎,难道不让饱受hybrid-web卡顿之苦的前端热泪盈眶?
如果,没有种种现实原因,flutter在纯技术角度何尝不算是当前的版本答案呢。
All hail flutter