Flutter 现在生态如何了?

2021-12-22 04:34:25 +08:00
 Infinitify

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

14698 次点击
所在节点    Flutter
105 条回复
djkloop
2021-12-22 15:10:07 +08:00
@djkloop 回复自己...应该是 jetpack compose 和 flutter 比... kt 应该和 dart 比...所以我更看好 jetpack compose
xz410236056
2021-12-22 15:11:18 +08:00
@lzgshsj #77 就算纯 UI 不需要交互,你两端 UI 用一套? flutter 默认是谷歌的设计风格,跟 iOS 画风完全不同啊。
pengtdyd
2021-12-22 15:14:58 +08:00
不是 flutter 不行了,而是移动端的时代已经过去了,没有红利了。
exploreexe
2021-12-22 15:27:52 +08:00
@lzgshsj #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 也是挺牛逼的。
KeyboardManAnAn
2021-12-22 15:38:12 +08:00
@pengtdyd 元宇宙不是又要被吹起来了? 这玩意儿也需要大量的 UI 开发吧, Flutter 到时候应该可以无缝迁移到各个 AR, VR, MR 平台
murmur
2021-12-22 15:49:53 +08:00
@exploreexe 抖音和头条完全 flutter 了么,剩下 68 个都死了对字节也没什么影响,我说的是完全 flutter ,少拿那种一个页面一个功能刷 gdp 凑数的

腾讯也一样,除了微信和 qq 都死一死反倒还能净化下互联网环境
murmur
2021-12-22 15:50:34 +08:00
更正:gdp->kpi
murmur
2021-12-22 15:52:58 +08:00
我看了新闻是 5 月的,5 月开始国家不已经帮教育 app 体面了,怎么还有开言英语
tabris17
2021-12-22 15:54:27 +08:00
@alexkkaa 理由是 webview 性能不好。不过现在手机配置看来,webview 基本没有性能瓶颈,就是费电
murmur
2021-12-22 16:08:36 +08:00
@KeyboardManAnAn 这玩意需要 unity 或者 unreal 开发啊,最接近游戏的
markgor
2021-12-22 16:10:12 +08:00
@exploreexe #84 uniapp GooglePay 不携带因为不是刚需,而且也要留一口饭给插件开发者。
你提到的 uniapp 连个 googlePay 支付 /第三方统计 都没有,只适合小程序 实在无法赞同,
敢问 flutter 是天生自带了微信支付和支付宝支付吗?

我不清楚 flutter 的环境,但就 uniapp 而言,原生没带的 sdk ,你可以自己封装下 ios 和 aos 的插件官方 sdk 给 uniapp 调用,如果你不会怎么封装,插件市场 常规的基本都有的购买,冷门的也可以找别人开发,论坛一堆原生 sdk 开发接单的。
murmur
2021-12-22 16:20:56 +08:00
喷的太多是时候结题了,我来说下 flutter 的问题
1 、嵌套 ui 恶心死人,你的 IDE 都支持在注释显示闭合标签 // some component ,为啥不把 dartx 做出来
2 、对 native 有依赖,目前看来微信小程序是以秒杀级体量为 native plugin 背书的
3 、坑多,等 flutter 简单到跟 vue 一样的时候,怕不是不用你安利,0 基础几天学会
4 、缺少一套开箱即用的体系跨端 ui ,这个在 h5 怕不是闭着眼睛选一套
imklay
2021-12-22 16:30:27 +08:00
用 flutter 开发了两个 app ,一个 pad 端,一个手机 app 。我的体验是学习曲线真的 ok 的,录屏,拍摄,录音,定位都有解决方案,写 UI 真的快的一批。
有人说道对 desktop 的支持不好,我感觉官方也不推荐现在就用 flutter 去做 desktop 的样子,package 的丰富程度咱们也不敢用在产品上。还有人说 app 组件的风格是 Material 的,但是官方也提供了 iOS 风格的组件呀,再不济,你们的 ui 出了高保真自己写样式也不复杂,或者说复杂程度不高。写的过程中可以逐渐抽离出自己的组件库,我觉得体验可以很棒。
还有提到状态管理 /数据驱动的,学习 flutter 之初,就已经看到有人做了搭建 MVVM 架构了,使用起来我觉得很舒适。
如果说有移动端 app 开发的需求,排除公司已有的技术选型,我肯定会首先推荐 flutter 的,否则就是 RN 。诸如 uniapp 之类的,我只能说用这东西写 app 的人是真的勇士
fregie
2021-12-22 16:37:31 +08:00
@makelove 大哥,这几个没有一个是啊。移动端 app 没有一个是 web app 啊!大哥!
exploreexe
2021-12-22 16:52:55 +08:00
@markgor #73 flutter 的第三方 SDK 支持率可比 uniapp 要强太多了。不了解 flutter 就去了解下,你的认知会发生改变的。

你之前没吃过好的,就觉的现在的是好的,当你习惯了好的 才知道什么难吃。
yawenimy122
2021-12-22 17:33:03 +08:00
第三方 SDK 不支持不是很正常的事吗?自己写个原生插件不就完事了吗?我是原生转 Flutter 的,比较顺手,如果是新手,没有原生开发经验,那就算了。现在要我再写一个 app ,我绝对选择 Flutter ,页面写起来真的太爽了,而且现在常用的原生功能,dev pub 都有很多很好的支持库,不用担心兼容问题。
yu7er
2021-12-22 17:35:34 +08:00
用 Flutter 开发了一个 app 体验还是很不错的,入门很简单,dart 也没有什么难点,基本上是边写边学的。打包出来的 ap p 可以说是很流畅了,高刷屏基本上帧数可以跑满。就是数据多和图片多的场景会有点点卡顿,跨平台能力一流。前两年也写过 RN ,碰到的坑真的是一个比一个恶心,在 Flutter 上暂时没碰到什么大坑,挺推荐前端的同学们尝试尝试的,很期待 Flutter 未来的发展。
maplelin
2021-12-22 17:58:41 +08:00
@TomVista #13 uniapp 兼容性问题多的厉害,不知道 flutter 咋样,如果兼容性好一点,那确实也算是解决了一大痛点
makelove
2021-12-22 18:20:26 +08:00
@fregie 我不用 twitter 的原生 app ,直接用网页版,没什么不好的
secondwtq
2021-12-22 19:39:40 +08:00
#17 @murmur 不敢苟同,在我看来,虽然现在新的老的各种语言很多,但是真正实用的静态类型编程语言,依然是一个未解决的问题。

这个“真正实用的静态类型编程语言”的意思是:跨平台,有基本的“现代”功能集,主要面向 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 ,一边需要个工具语言,一边需要推广,一拍即合,皆大欢喜,双赢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX