Flutter 现在的生态如何了?

发布于 1周前 作者 wuwangju 来自 Flutter

有些用到原生功能比如摄像,录音,定位是否已经和原生没差别了?


Flutter 现在的生态如何了?
101 回复

GraphQL 都没有好用的

更多关于Flutter 现在的生态如何了?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


你说的这些,不管 RN 还是 Flutter 最后都是用的原生模块的吧

真心不看好这破玩意儿

稍微底层的功能,都是针对各端的封装。想用得好,得自己懂各端原生开发

原生功能还是各自封装各自的,出了问题还是要老老实实去看原生代码,跑不了的

flutter 生不逢时,错过了移动端泡沫期,如果赶上 p2p 小贷 团购那个黄金时代,绝对大火

现在国内都是要么小程序要么 native

画界面没的说 但是只是画界面为何不用 web 技术 降维打击啊

咋了,抢了你饭碗了?

因为现在前端陷入了怪圈,越是难学习难用的东西越被追捧,要不来个新人把你换了多划不来,flutter 要学一个新语言那不是太好,以后 dart 的坑也可以面试

天天吹性能 动画,native 都不做这些,吹的是个啥

虽生不逢时,但也在稳定发展,前途无量。

1 、如果你问的是第三方 sdk 生态,还是不行,支持 flutter 的不多。具体看你需求。比如定位有高德,但具体要去了解,flutter sdk 是否提供了所有你要的功能。
2 、如果你问的是原生,常规内容基本都有支持了。非界面的部分,比如录像,本质还是调原生,何来和原生的差别。


顺便驳斥“越是难学习难用的东西越被追捧”,又是我不了解但我什么都知道的典型。
我接触过稍微学过不下 5 种编程语言,dart 真是我见过最傻瓜的。毫不客气的说,dart 还用学?也许对于在校生是需要学习的。对于码农,长得有什么不同的地方?
翻开 Java 基础,后几章是什么?估计是线程、反射。 dart 全没有。(其实有线程,不过基本用不上)。还能更傻瓜吗?
Flutter 工程就更简单了。一个 main ,然后基本顺藤摸瓜全在里面了。

如果问“茴香豆有几种写法”式的原理实现,实际编码也用不上。


Flutter 是能解决实际问题的。
比如让我这个 Android 码农,成功做了 2 年 app 全栈开发,应用早上架 app store 了。
体验还不比原生差。

个人觉得对新技术是没有排斥的。从事 Android ,先学的 Kotlin ,再学的 React Native ,最后才是 Flutter 。


许多人的态度,我当年的前同事可以算典型。我这个 Android 开发都开始学 swift ,问他这个 iOS 开发为什么不学。告诉我没用,反正还得会 OC 。他说的很有道理,我无法反驳。直到工作逼他去学。

有统计说 app 使用 flutter 已经占了一部分市场了,比 RN 的前景要好很多。

我用过,设备接口 /三方 sdk 和 uniapp rn 没区别,设备接口勉强够用,三方 sdk 几乎不能用,

顶多 ui 性能 比 uniapp 好点,

在状态管理 /数据驱动上,一塌糊涂, StatefulWidget / StateLessWidget /InheritedWidget 的设计就是一坨屎,

不建议入坑

最近试着开发公司管理 App ,开发体验感觉还不错,运行效果离原生还有点差距,还有就是不支持 ProMotion ,iPhone 上体验较差

负担太重了,要学个这个还得学个 dart ,要是用 ts 啥的,那当然能火啊

“越是难学习难用的东西越被追捧”,往往是愚蠢的人在为自己的懒惰寻找理由

但是 flutter 选用 c#、ts 甚至 lua 做语言都对他框架本身没任何影响

单纯是为了推广语言做的设计

最大的优点是 dart ,最大的缺点也是 dart

广东经济发达么,广东要求你来之前学粤语么,在现实生活中都懂得事,在开发要反其道而行之,甚至要吹捧

我觉得很不错,学习曲线非常平滑,ebay 和 my bmw app 新版已经全面 flutter 化,丰田在也选择了 flutter 技术栈作为新版车机 OS 的 UI 层,有自己的观点没错,唱衰也可以,但是你们没意识到,企业是很青睐这种成本低产出大的技术的。

基于 web 的移动端 app 你做过吗?体验过吗?用户体验跟原生 app 的差距你知道有多大吗?基于 web 的移动端框架又不是没有,坑也不是没踩过,真以为业界大佬都没你聪明吗?

对我来说,flutter 是前端领域中最容易入门的技术栈吧。。。不知道说复杂的是咋回事
目前基本可以算全平台了,RN 并不能打

“广东经济发达么,广东要求你来之前学粤语么”
中华人民共和国现代标准汉语是普通话,我有义务学习普通话,没义务学习粤语。
不当类比

微信小程序就是日活 4 亿的 web app 开发框架,我天天在体验,怎么了,你 flutter 做一个日活四亿的看看

前端学了 flutter ,js css html 三件套该学还得学,不是学了 flutter 后面三个就不学了

开发过一款 APP ,已上架。感受就是 dart 写起来很舒服,虽然说有学习成本,但是我觉得对于程序猿来说毫无难度。
另外从市场行情来看,flutter 后来居上,有点要赶超 rn 的趋势。

<br>但是 flutter 选用 c#、ts 甚至 lua 做语言都对他框架本身没任何影响<br>
你这话说的…
我跟你道歉,不该对你要求这么高的,毕竟你只是一个外行,不同语言特性区别都不清楚,不同语言有自己适合用的领域的,不是单纯的语法不同而已。

你前面还带有高傲,后面就露出本色了,不是单纯的语法而已,你为什么不用其他的语法自己写解析器

c#有最完备的语法糖
ts 在前端有广泛的受众
lua 在嵌入式解析器试用历史悠久

用哪套语法不好

这就对了,你平心而论,微信小程序体验是否能达到原生 app 的级别?是不是做了微信小程序后就完全没必要做原生 app 了?有没有哪个公司使用微信小程序作为自己的主要产品替代了原生 app ?

google 怎么可能用 ms 的语言 oracle 的碰瓷还没赔够钱?

lua 历史悠久,为什么 web 开发最终都用 js 呢?
他们特性的差别导致应用于不同领域,你能说的清楚吗?你到底是没懂 web 呢?还是不懂 lua 呢?

我考虑的更极端,我认为目前已经没什么需求值得我新装一个 app 了,小程序挺好的,国产安卓 rom 、大厂 app 已经把我用不到的功能都集成了,人家考虑的比我远多了

所以我第一个帖子就说 flutter 生不逢时

哦对了,现在国内 gov 的各种办事都是公众号或者小程序就可以搞定

现在这句话应该反着说 哪个公司还在强上 app 不用小程序? app 跟桌面端 wpfwinform 没啥区别 我他么买个菜点个外卖我为什么要装个 app ,点开网页就能干的东西。 还是那句话 90%的公司没必要开发 app ,web 完全够用,不够的小程序提供原生接口来弥补。

历史经验表明,那些强上 app 维护双端的公司已经被缓慢的市场相应和高昂的推广成本给拖死了。那些扫码即用的公司反而活得越来越好。聪明人从 2015 年就看到这个趋势了

你怎么考虑的不重要,我只是在讨论技术而已,我就是想问小程序体验是否能达到原生 app 的级别?只是反驳你做原生只是为了难的观点
另外我承认小程序能做许多事情。

我说的前端没有特指 web 啊,做 mobile/desktop app 的为啥要去学 html ,
另外我想说的 flutter 不用写一行 html/css 就可以产出 web ,并且有一堆现成的例子,比如 https://www.flutterfolio.com/
不过看您一个打 10 个的样子肯定会继续杠 恕我不奉陪了

我只是来讨论技术的,不是来讨论产品的,公司需不需要用是产品的事。
我只是想表达基于 web 技术的小程序的体验还打不到原生 app 的级别。



应该说远超 app 吧,扫码就用,桌面不留痕迹,真的小而美
比如各种码、行政办事、共享单车
微信虽然自己干的不是人事,但是限制小程序 2m 是真棒

Flutter 最大的败笔是不用 javascript ,注定了永不可能成前端王者

一张图片一个登录框的页面,首屏至少加载了 1.3+2.6m 的资源才显示出来,这种垃圾体验还值得吹嘘?

我跟阐述了 flutter 比 RN 、native 优秀之处,说了一大堆话。
最后领导决定:做小程序。

体验这个事不能以程序员的角度说,要已用户和公司的角度说。electron 这种屎一样体验的还不是遍地开花。 大多数 app 大家一天打不开一两次,每次使用时间不超过几分钟。 体验不重要,重要的是能满足需求。当然靠谱的技术人员即使纯 web 也不会写出 12306 那么垃圾的体验的。

说到底大多数 it 公司是服务行业和娱乐行业,并不需要多少原生功能,需要原生功能多的早都被各个巨头和成熟产品霸占了。普通程序员和公司介入成本太高失败风险也高。

Flutter 的跨平台只是说能做一些简单的东西,稍微复杂一些的 background task ,isolate 就不够用,还是得写原生的
而且不少基础功能的库都不太好用,比如 location ,比如 notification
最主要的,按现在不同平台的 UI 指导,你 Android 和 iOS 不可能长得一样,还是得两套代码。当然这个是现在跨平台框架的通病
话说 UI ,Flutter 还不支持新的 Material You 呢,感觉 Google 好像也不是很上心

google 现在不是推 compose 吗 这玩意跟 flutter 简直是一模一样

最起码桌面端还差很远。连 webview 都不支持

除了 js 单线程做动画麻烦点,其他区别也不大了。notion 就是纯 webview 做的,体验也不错。

flutter 毫无疑问是可以的 。FPS 能达到 60 甚至更高 。那动画丝滑顺畅,比小程序强几倍 。
车机这种资源少,主频低的都开始选择 flutter ,FPS 也高,体验丝滑,比浏览器套壳占用资源还少。
车机唯一能比的是 QT ,但是开发效率没 flutter 高。

Flutter 目前混合开发里,排名第一,这不说我说的,这是 Google 统计的。混合开发里,目前就两个能打的 RN Flutter

你说的这些功能,都是支持的,当然是通过插件的方式。

我自己本来做 Android 开发,写了几个 Flutter 项目。总体感觉 UI 写起来很快,然后跨平台支持也不错。目前打包了 Android iOS macOS 这几个都挺不错的。

#43 Google 的 compose 是给 Android 用的,相当与 Swift UI ,JetBrains Compose 是一个跨平台项目。但是跟 Google 没啥关系。

是呢,Compose 都开始支持桌面组件了,这种功能 Flutter 肯定是没日子见到了

原生功能还是写 C,给 flutter 调用…最省事.

flutter ffi 一下就可以支持了吧…我觉得只是看有没有人做而已

想了解下哪款车机应用使用 flutter 了


大厂的小程序可以开后门解除小程序 2m 限制

https://flutter.dev/showcase/toyota 丰田的新车,应该还在开发还没上市

身为程序员,你不会上 GitHub 看看 RN 和 flutter 的开源质量和数量吗?一目了然了

不是吧,我印象里 Flutter 是有单独的 render engine ,但是桌面组件调用不到

不要再来讨论产品了行吗,我一点都不在乎哪个公司到底是做小程序更好还是原生 app 更好。

行,我问你体验好不好,你跟我说用起来很方便,到此为止我不回复了。

生态肯定会越来越好,传统的那套 HTML+CSS+JS 有上限的,你要做表单展示可以,但是要做成游戏那种互动性,就很难。

Flutter 自绘制能很好的弥补这部分软肋。

这样说吧,用哪一种技术和具体项目有关系。传统前端和写 Flutter 的,这两部分人是互补,而不是竞争关系。

做海外外包项目的必备神器,firebase 无缝集成。
国内 SDK 就别看了。
另外原生的硬件连接最好还是自己搞。

“行,我问你体验好不好,你跟我说用起来很方便,到此为止我不回复了。”
游戏体验最好,但很少有人会用 u3d 开发企业的官网展示。

每一种技术都自己的适用性,我没觉得 webview 套皮体验很差,也有硬件加速,滚动也很丝滑。

卡是别的一些原因,不是技术的锅。

好不好要看人,很多人觉得不好因为是要重新学一套东西,flutter 和 uniapp 这些不是一个东西,不能比,uniapp 这些是国产框架,他们优先考虑的是小程序,然后再来兼容 APP ,所以开发小程序 uniapp 这些非常好,但就 APP 来说效果就很差,一些简单功能可以,要到复杂点就不行了,因为它的东西都是通过小程序那套映射过来的;而 flutter 没有小程序,主要考虑的是多端跨平台( web 、移动端、桌面端)的一体化,整体性能来说要比 uniapp 这些要好,所以说如果只是要开发 APP ,选择 flutter 非常不错,对于生态来说,现在各厂商已经开始统一接口,也就是 restful 接口,这样就不用每种语言必须得有 SDK 才能进行开发,所以功能实现起来是没有问题的

可以通过 ffi 来调用原生能力

现在 flutter desktop 支持的原生的系统托盘,通知,窗口, 都是通过原生插件来实现,

正在学 本地离线存储你们都用什么? hive drift objectbox?

摄像: https://pub.flutter-io.cn/packages/wechat_camera_picker
录音: https://pub.flutter-io.cn/packages/flutter_sound_lite
定位: https://pub.flutter-io.cn/packages/geolocator
很多用起来比原生还简单方便很多,而且还不用写两份代码
如果我说,某些方面 flutter 的体验和生态甚至已经超越原生,不知道会不会被喷死

能拿 flutter 和小程序比的不仅是不懂技术,更重要的是没懂业务。
flutter 对标的是 app ,小程序对标的是 webview ;说了一堆小程序的优点,然而那是 webview 的优点。
轻量级的用 webview 就够了,现在有了小程序只是有了更好的性能基线,之前那种是个简单业务都要做 app 才是畸形。中量,重量级的永远只能 app ,无论靠浏览器还是靠微信,都不可能提供系统级的开放能力,而 flutter 是在这一层面具有跨端能力的。

dart 是很简单,但是也很蠢。

至于生态,现在还太差,目前在用 flutter 开发,经常需要自己写库或者去修复开源库的 bug

那是因为 app 的复杂度还太低,复杂度高了把 webview 做到丝滑要付出的开发成本很高的,如果抛开开发成本谈的话我承认你是对的。这也是业界几乎没有用纯 webview 做大型 app 的原因

webview 能做到秒开吗?还有页面很多视频 图片的时候如何滑动不卡?不卡值得是不掉祯,流畅滑动。我们最近因为卡顿的问题正在把 webview 的页面逐个改成原生

fb/twitter/google 这些网站是不是 web app 啊,很卡吗

如果没有库就比较头疼吃三次饭

国内生态一般,比如高德 flutter SDK ,本质是调用安卓 SDK ,但是很多功能都是没有移植的。
比如在地图上画个圆,原生 SDK 有 addCircle 方法,flutter SDK 就没有,最后在 CSDN 上看到用 360 个点画了个多边形,勉强解决问题,绝了。
高德还算好了,百度地图 flutter SDK 上一次更新还是去年,腾讯地图压根没有 flutter SDK 。
另外腾讯云,阿里云这些开放平台很多功能也只有安卓,iOS 和 web 的 SDK ,基本都没有 flutter SDK 。



“这也是业界几乎没有用纯 webview 做大型 app 的原因”

我总觉得卡,是 MVVM 框架的锅(逃)

Flutter 终归还是要凉的,不要浪费时间在快要被扔掉的方案上。

这个情况可以自己写个 flutter 插件,还是需要安卓和 iOS 的支持,说到底插件的本质还是调用安卓和 iOS 的 SDK

Flutter 没用过,UNIAPP 倒是常用,IOS 和小程序都上架了。
上面也看提到了小程序和 APP 的对比,
我自己的看法是 APP 能实现小程序很多无法实现的功能。只是肯能太细你们没看到,另外小程序早就不是 2M 了,有分包加载功能。
1 、图片
对于 APP 而言,我习惯的是把图片资源缓存,后续只需要检查沙盒里面有没这个资源,避免重复加载,这一点在小程序是无法完美实现,只能基于 web 的缓存。

2 、长页面长列表
对于 APP 可以通过对应组件,达到不可视区域的资源释放,但是在小程序中(web),当列表达到一定程度(特别是包含图片的),直接就卡死了。

3 、支付方式
小程序中除了微信支付还能用什么支付方式?但 APP 可以使用不同的 sdk 不被受限。这一点对于港澳台业务的非常重要。客户人群有使用微信,但却不是使用微信钱包,而是使用当地的第三方支付渠道,小程序中就没法直接拉取支付。

4 、分享
安卓的小程序可以分享朋友圈,app 则不受限制,常规做法都是 app 搭配 H5 进行分享。

5 、小程序常年改接口…

#75
说实话,我是照着高德地图 flutter SDK 的添加 polygon 代码,重写了添加 circle 的 java 和 dart 代码,编译也通过了,也能看到有调用输出,就是显示不出来,最后只能画多边形近似圆曲线救国。
问题就出在这,写插件根本离不开原生 SDK ,没人维护插件就只能自己研究原生 SDK 的代码然后写插件。写 flutter 一时爽,写适配插件火葬场,对我这前端来说还需要写 java 体验属实割裂了,如果还要写 swift 。。。难顶。

dart 根本不是问题…代码写多了这玩意没什么差别

要熟悉的是 fultter 框架本身而不是 dart 语言
就和你写 angluar 一样要熟悉的是 angluar 框架而不是 ts
语言本身是很容易熟悉的

flutter 框架写起来和 react 其实差不了太多,写起来其实也没什么大问题

但是无论你开发什么手机 app 只要不是纯 http 通信都得和原生接口打交道,而且因为用不上其他库,还得比一般调库崽更熟悉原生才能玩得转这种垮平台框架。

其实上面说得很对, 的确是生不逢时,错过了移动端泡沫期。

搞黑产的据说都挺喜欢这玩意的,干起来真是快。

其实 flutter 我更看好 kt… 天然支持 java 再加上 jetpack compose 然后也在搞跨平台…反而觉得 kt 才是 yyds

#8 体验差啊,你作为用户会关心他用什么实现吗

回复自己…应该是 jetpack compose 和 flutter 比… kt 应该和 dart 比…所以我更看好 jetpack compose

#77 就算纯 UI 不需要交互,你两端 UI 用一套? flutter 默认是谷歌的设计风格,跟 iOS 画风完全不同啊。

不是 flutter 不行了,而是移动端的时代已经过去了,没有红利了。

#59 最搞笑的就是阿里,吹 flutter 吹的最猛 支持最差,哈哈哈。
写插件这种体验就好像用 uniapp 一样,有些功能没支持,不会安卓和 iOS 真的非常难顶。

感觉用这种跨平台的方案最大的问题就是第三方 SDK 支持,当年不用 uniapp 主要问题就是连个 Google Play 支付都要自己写,第三方统计什么的就更别提了。uniapp 还是只适合小程序。

至于 flutter ,我们看一组数据:

字节跳动有 70 多个 App 选择 Flutter 作为跨端解决方案。
相比 Android/iOS 双端开发,跨平台的 Flutter 可以节省约 1/3 的开发时间。
现在,字节跳动许多 App 都用了 Flutter 和其他技术混合的开发方式,新的产品更倾向完全使用 Flutter 。在西瓜视频、抖音火山版、开言英语等多个业务上,Flutter 都提升了大约三分之一的开发效率。

不只是头条系,腾讯很多新产品也都尝试完全使用 flutter 开发,原本以为大厂不在乎开发效率问题,反正有的是人,现在看也是效率优先。

所以 Flutter 到底咋样,还是得看开发者到底愿不愿意用呀,很显然开发者已经做出了选择。

感觉 V 站很多人受到某鱼的影响,因为确实就是一坨屎,起了一个完美的反面案例,能做到这一点,ali 也是挺牛逼的。

元宇宙不是又要被吹起来了? 这玩意儿也需要大量的 UI 开发吧, Flutter 到时候应该可以无缝迁移到各个 AR, VR, MR 平台

抖音和头条完全 flutter 了么,剩下 68 个都死了对字节也没什么影响,我说的是完全 flutter ,少拿那种一个页面一个功能刷 gdp 凑数的

腾讯也一样,除了微信和 qq 都死一死反倒还能净化下互联网环境

更正:gdp->kpi

我看了新闻是 5 月的,5 月开始国家不已经帮教育 app 体面了,怎么还有开言英语

理由是 webview 性能不好。不过现在手机配置看来,webview 基本没有性能瓶颈,就是费电

这玩意需要 unity 或者 unreal 开发啊,最接近游戏的

#84 uniapp GooglePay 不携带因为不是刚需,而且也要留一口饭给插件开发者。
你提到的 uniapp 连个 googlePay 支付 /第三方统计 都没有,只适合小程序 实在无法赞同,
敢问 flutter 是天生自带了微信支付和支付宝支付吗?

我不清楚 flutter 的环境,但就 uniapp 而言,原生没带的 sdk ,你可以自己封装下 ios 和 aos 的插件官方 sdk 给 uniapp 调用,如果你不会怎么封装,插件市场 常规的基本都有的购买,冷门的也可以找别人开发,论坛一堆原生 sdk 开发接单的。

喷的太多是时候结题了,我来说下 flutter 的问题
1 、嵌套 ui 恶心死人,你的 IDE 都支持在注释显示闭合标签 // some component ,为啥不把 dartx 做出来
2 、对 native 有依赖,目前看来微信小程序是以秒杀级体量为 native plugin 背书的
3 、坑多,等 flutter 简单到跟 vue 一样的时候,怕不是不用你安利,0 基础几天学会
4 、缺少一套开箱即用的体系跨端 ui ,这个在 h5 怕不是闭着眼睛选一套

用 flutter 开发了两个 app ,一个 pad 端,一个手机 app 。我的体验是学习曲线真的 ok 的,录屏,拍摄,录音,定位都有解决方案,写 UI 真的快的一批。
有人说道对 desktop 的支持不好,我感觉官方也不推荐现在就用 flutter 去做 desktop 的样子,package 的丰富程度咱们也不敢用在产品上。还有人说 app 组件的风格是 Material 的,但是官方也提供了 iOS 风格的组件呀,再不济,你们的 ui 出了高保真自己写样式也不复杂,或者说复杂程度不高。写的过程中可以逐渐抽离出自己的组件库,我觉得体验可以很棒。
还有提到状态管理 /数据驱动的,学习 flutter 之初,就已经看到有人做了搭建 MVVM 架构了,使用起来我觉得很舒适。
如果说有移动端 app 开发的需求,排除公司已有的技术选型,我肯定会首先推荐 flutter 的,否则就是 RN 。诸如 uniapp 之类的,我只能说用这东西写 app 的人是真的勇士

大哥,这几个没有一个是啊。移动端 app 没有一个是 web app 啊!大哥!

#73 flutter 的第三方 SDK 支持率可比 uniapp 要强太多了。不了解 flutter 就去了解下,你的认知会发生改变的。

你之前没吃过好的,就觉的现在的是好的,当你习惯了好的 才知道什么难吃。

第三方 SDK 不支持不是很正常的事吗?自己写个原生插件不就完事了吗?我是原生转 Flutter 的,比较顺手,如果是新手,没有原生开发经验,那就算了。现在要我再写一个 app ,我绝对选择 Flutter ,页面写起来真的太爽了,而且现在常用的原生功能,dev pub 都有很多很好的支持库,不用担心兼容问题。

用 Flutter 开发了一个 app 体验还是很不错的,入门很简单,dart 也没有什么难点,基本上是边写边学的。打包出来的 ap p 可以说是很流畅了,高刷屏基本上帧数可以跑满。就是数据多和图片多的场景会有点点卡顿,跨平台能力一流。前两年也写过 RN ,碰到的坑真的是一个比一个恶心,在 Flutter 上暂时没碰到什么大坑,挺推荐前端的同学们尝试尝试的,很期待 Flutter 未来的发展。

#13 uniapp 兼容性问题多的厉害,不知道 flutter 咋样,如果兼容性好一点,那确实也算是解决了一大痛点

我不用 twitter 的原生 app ,直接用网页版,没什么不好的

#17 不敢苟同,在我看来,虽然现在新的老的各种语言很多,但是真正实用的静态类型编程语言,依然是一个未解决的问题。

这个“真正实用的静态类型编程语言”的意思是:跨平台,有基本的“现代”功能集,主要面向 native AOT 编译且运行时较轻量,支持多线程。

动态类型、有虚拟机的编程语言已经有 JavaScript 、Python 、Scheme 等成功典型了。
静态类型,有虚拟机的,C#,Java 及一票 JVM 语言也都不错。
TypeScript 算是中间的。这些领域的吃鸡已经基本完成了。

但是静态类型无虚拟机暂时还比较混乱。C 抽象能力太差,C++ 洞太多,Ada 、Pascal 、Fortran 、D 等要么凉了要么不温不火,Haskell 智商兼容性太差。上个十年这一波新语言可能得有一半,包括 Rust ,Swift ,Go ,Nim ,Vala 之类的都在试图解决这个问题。而其他很多新老语言,如 Kotlin ,Scala ,C# 甚至 TypeScript 也在探索这条路,现在吃鸡大赛暂时还没打完。

你举的这几个例子比较失败,AOT 编译+静态类型是 Flutter 核心卖点之一。Lua 是动态类型先踢出,TS 不完全是静态类型不适合 AOT 编译也踢出,C#虽然可以 AOT ,但是语言本身并不是针对这个设计的,削足适履可能还不如用 Dart 。在我看来,Dart 只是刚好 check 了上面所有的 box 的“经济适用语言”而已。

你举这些例子还不如问为啥不用自家的 Go 。我推测这涉及到另外一个问题,就是除非语言具备足够的元编程能力并且工具提供良好的支持,要做 GUI 框架,总是要其所依赖的编程语言本身配合加点功能更好。比如苹果专注做 GUI ,从 NeXT 算起的两代语言,Objective-C 和 Swift ,都为了 GUI 开发做了一些定制(当然跟你说苹果可能显得我大脑比较高级 …),JavaScript 也有 JSX 之类的东西,GTK 也自己搞出个 Vala ,Qt 最奇葩搞出个 moc 。
那比较理想的情况就是,框架开发者能在一定程度上控制语言的发展。C#、Swift 之类的是别人的,没法控制,Go 已经做大了(可能还有内部的一些组织问题),看起来也不好控制,就拎出来个 Dart ,一边需要个工具语言,一边需要推广,一拍即合,皆大欢喜,双赢!

Flutter作为谷歌推出的跨平台开发框架,目前的生态状况相当积极。以下是对Flutter当前生态的简要概述:

  1. 社区与开发者支持:Flutter拥有一个庞大的开发者社区,全球月活跃开发人员超过100万。此外,还有超过1.4万名贡献者和1万名包发布者,以及5万多个社区包为Flutter提供支持。
  2. 企业应用:Flutter已被众多知名企业采用。例如,环球影城通过Flutter减小了应用大小并降低了崩溃率,SAS航空公司采用Flutter作为其App的技术栈,LG也选择Flutter来增强其智能电视操作系统webOS。
  3. 市场占有率:在Apple AppStore中,Flutter的使用量从2021年所有跟踪免费应用的10%左右稳步增长到2024年的近30%,成为最受欢迎的SDK之一。
  4. 未来展望:Flutter将继续优化产品体验,如提供更深的iOS保真度、无缝平台集成以及更多Dart语言特性的优化。此外,Flutter还在努力推进其在PC端的落地。

综上所述,Flutter目前的生态状况良好,拥有庞大的社区支持、广泛的应用场景以及不断增长的市场占有率。未来,随着技术的不断进步和生态系统的日益完善,Flutter有望在跨平台开发领域发挥更大的作用。

回到顶部