有没有实践过 Flutter 的开发者 , 为什么说它是原生性能呢 ?

2019-12-16 12:15:56 +08:00
 maomaomao001

昨天看了半天 flutter 写了 hello world。 最大的感受就是 Android 虚拟机在 windows 系统上终于飞快了啊,感觉和真机差不多了速度 。

然后,具体到 flutter 的话 ->

  1. 不是说它的性能媲美原生应用吗 ? 然而,我实践的结果是 最简单的 slider (滑动条) 联动,它有时候好像也跑不到 60 帧啊, 性能检测工具经常飘红 , 所以它是不是真的能有和原生一样的体验 ?

  2. 后来我返回去看了看它的架构 , 感觉明明就是翻版 canvas 呀 ?(也许我理解错误) ,react native 好呆也是调用原生控件才会说自己能用原生性能 ,flutter 明明就只是全新的画板(感觉有点类似游戏开发中的渲染引擎),而且实现还不全 (只支持 Android,ios, 最近好像 web 版本和 mac 版本在测试中 ,windows/linux 版本没看到消息) , 能不能说说他们做一个全新画板的意义在哪里?

  3. 语言用的 Dart , 这个感觉用起来问题不大 , 可是 为什么他们用这个语言呢 ? AOT 编译的话 , 以后 typescript 的最严格模式有没有可能会做到 类似呢 ? 可以 JIT + VM, 开发完了,AOT 编译到指定平台 ?

  4. 你们看好 flutter 吗?

大家能讲讲自己在 flutter 实践中遇到的问题(坑,或者好的方法之类的) 吗?

6596 次点击
所在节点    问与答
41 条回复
maomaomao001
2019-12-16 14:23:57 +08:00
@lagoon 话说,有没有可能,rn 是不是也许也能那么做 , 不调用系统控件了, 直接用 skia 自己画
TimLang
2019-12-16 14:25:43 +08:00
而且很多小公司开发人力有限,做些没什么技术壁垒的 app,比如电商 app,用 flutter 很方便,做一套,再稍微改改,两端就出来了。
lagoon
2019-12-16 14:27:25 +08:00
@maomaomao001
我猜,这就是亲儿子的好处了?开玩笑开玩笑。
至少现在 RN 不是这样。

或许目的不同吧。Google 搞 Flutter,也不单单要搞 Android&iOS,几乎肯定还有 Fuchsia OS。
sunrain
2019-12-16 14:37:05 +08:00
Unity"抄"了一版 Flutter,名曰 UIWidgets,支持 Unity 所有平台,但他是个游戏引擎,打包出 apk 较大。
maomaomao001
2019-12-16 14:40:40 +08:00
@sunrain 这个很强大啊看起来,unity 跨平台,别说 windows 和 mac 了 ,也许连 ps4,xbox 都能上了
sunrain
2019-12-16 14:42:10 +08:00
@maomaomao001 #25 是的,用法跟 Flutter 几乎无异。
loshine1992
2019-12-16 15:04:27 +08:00
Q:滑动卡顿
A:打 Release 包就不卡了

Q:Flutter 为什么用 dart ?
A:dart 开发组就在旁边,有问题反馈和解决很快。
userdhf
2019-12-16 15:39:37 +08:00
你说的没错,就是省了 dom 的消耗。本质就是外挂了个画布
wvitas
2019-12-16 15:42:45 +08:00
据反馈,flutter 在高刷新率的手机上表现的不好,有待测试及验证
janus77
2019-12-16 16:07:08 +08:00
为何说媲美原生:因为架构层数和原生一样,RN 等的架构层数要多一层(用于桥接的),从理论上来讲是可以做到原生一样的。
为啥还卡顿:首先 release 比 debug 强,其次现在引擎还有待更新,所以我的第一点也只是说“理论上”。
为啥用 dart:优点比较多,最主要的是 AOT 之类,然后是语言特性( dart 和 native 直接的交互,导致他很适合做跨平台),另外就是语法简单(不是简洁),易融入前端圈。
NG6
2019-12-16 17:05:35 +08:00
我只管的感觉就是咸鱼用了以后,体验 不是很好,听说只有详情页用了,但感觉发布页也用了,全是问题,感觉没经过测试就放出来了,这么长时间都没修复,移动光标都移动不了
v2agedchen
2019-12-16 17:31:39 +08:00
列表卡顿是因为 debug 与 release 的编译模式不一样。
关于 flutter 的性能表现,有一个最直观的 app 《 The history of everything 》可以在 Google play 或者 App store 上面下载使用体验一下。
如果你用贴吧的话,有一个《贴吧内部版》,也是由 flutter 编写,体验非常好

或者也可以看看我这个开源项目,感受一下: https://github.com/asjqkkkk/flutter-todos
miyuki
2019-12-16 18:17:24 +08:00
楼上这个 app 试了一下,手持 1+7pro 90Hz 肉眼还是感觉帧数没有满的样子
KeyboardManAnAn
2019-12-16 22:39:56 +08:00
这种完全抛弃原生自绘 UI 的套路已经很早就被 Qt 证明了是切实可行的,期待 flutter 在桌面端的表现
maomaomao001
2019-12-16 23:43:24 +08:00
@v2agedchen Android,845 处理器, 导航进入的时候 , 还有 about 页面上下滑动的时候,非常明显的卡顿延迟感 , 我都感觉我手机出问题了
v2agedchen
2019-12-17 09:33:19 +08:00
@maomaomao001 😂导航页面进入卡顿一下应该是我用代码写的那个动画效果,是代码的问题; about 页面滑动卡顿我没有遇到过,我是 redmi k20 pro
xzc2677
2019-12-17 10:26:12 +08:00
2. 我也好奇这一点,以前也有类似的产品,为什么这次 flutter 能掀起如此大的风浪(可能是 GG 出品?),游戏届早就用这一套了。包括 Unity, cocos2d,以及一些大厂的自研游戏引擎。
3. 据说是隔壁组是 Dart 组,就决定是 Dart 了。(近,解决问题快)
4. 比较担忧的是生态问题。flutter 应该不能复用现在 OC 以及 Swift 的一些轮子( UI 方面)。Android 方面不了解。这部分的轮子都得重新造。机遇和挑战并存吧。
maomaomao001
2019-12-17 10:58:44 +08:00
@xzc2677 何止 oc swift 没法服用,最关键的,海量的 npm 包没法服用就太难受了
maomaomao001
2019-12-17 10:58:58 +08:00
复用
jedrek
2019-12-17 11:28:41 +08:00
@maomaomao001 你试了 Release 的性能了吗?

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

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

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

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

© 2021 V2EX