虽然需要一点时间适应,FFI, Provider, 完整的界面库,完整的开发环境,连 dart 语言都是那么的可爱,原来不适应嵌套,用习惯了也觉得设计很完美。想起以前搞 React Native 那个痛苦,Flutter 简直就是颠覆。
1
huruwo 2020-11-20 14:50:42 +08:00 7
其他的都行 不过 dart 他真的不可爱
|
2
richzhu 2020-11-20 14:52:47 +08:00
我擦 react native 痛苦完全同意,但是 dart 真的可爱嘛?
|
3
dying4death 2020-11-20 14:55:23 +08:00
dart 真的可以,比 java 好用多了。异步编程比 kotlin 协程还方便
|
4
zzzzzzggggggg 2020-11-20 14:58:57 +08:00
+1
|
5
opentrade OP 不可爱吗?
class PureStatic { PureStatic ._(); } class Singleton { ... factory Singleton() => _instance; } |
6
KuroNekoFan 2020-11-20 15:04:42 +08:00
好奇 react native 为啥痛苦
|
7
janxin 2020-11-20 15:13:57 +08:00
开启了 null safty 之后体验进一步上升,不过也没那么好,有一些槽点
|
8
debuggerx 2020-11-20 15:15:06 +08:00 4
其实,现在的体验已经没有一开始好了……
我是 18 年初开始玩的 Flutter,那会还是 alpha 版,开发体验爽得不行,爽主要体现在: 1. sdk 源码很简洁,结构很清晰,虽然有些 bug,但是很容易追源码,有问题的地方可以自己改 2. dart 语法简洁,多数场景下都有几乎唯一的写法,很少骚操作 3. 代码提示逆天,当时的 dartlang server 代码提示效果极好,多数情况下即使是没用过的组件和 api,单靠代码提示就能写得下去 而发展到现在,Flutter 确实修复了很多 bug, 增加了很多特性,生态和资料也多了很多,但是日常开发过程给我的体验反而是退步的,与上面逐一对比: 1. sdk 代码量膨胀,增加了很多组件,官方文档却跟不上,有时难以找到需要的组件,有些组件代码很混乱难以使用调试 2. dart 语法迭代,增加了不少新的语法糖,虽然确实在某些场景解决了一些问题,但也导致了一些情况下写法的不一致,增加了出错的概率和理解的难度 3. 目前 flutter 的代码提示几乎是废的……参考这个 issue [https://github.com/dart-lang/sdk/issues/43657#issuecomment-724590463]( https://github.com/dart-lang/sdk/issues/43657#issuecomment-724590463) ,他们想实现"更好的"自动导包,所以对 dartlang 的 lsp server 进行了大改,结果破坏了原本的智能提示类型排名,现在提示出来的类型列表几乎总是无关的东西排在最上面,甚至连 String 这样的基本类型都要一个一个字母全部打完,提示都还在找各种包里所有包含 "string" 这个字符串的定义,可以说是非常难用了 |
9
huobazi 2020-11-20 15:17:35 +08:00
Flutter 是真不错,期待更好!
|
10
janxin 2020-11-20 15:19:16 +08:00
@debuggerx 1 、3 槽点非常同意,现在我都是跟着看 Widget of the week 看看有没有什么好用的 widget
2 其实语法糖可以人为限制使用,其实我还需要更多语法糖 2333 |
11
lwlizhe 2020-11-20 15:27:25 +08:00
泼点冷水
这都多长时间了……issue 数量还是没降低…… 另外有些功能缺失确实好难受啊,比如说嵌套滑动这块…… 年初的时候就发现了问题,搞了半天也没发现完美的解决方案,目前我这只能做到最多有两个子滑动 Widget 的嵌套滑动; 前段时间发现有人在掘金上尝试解决这个问题,结果还是那样…………问题还是一样在快速滑动的情况下…… Flutter 要走的路感觉还蛮长的 |
13
debuggerx 2020-11-20 15:27:52 +08:00
@janxin 是的,Widget of the week 我也看,官方出品质量保证。
再推荐一个博客,经常能看到最新最炫的东西: https://flutterweekly.dev/archives/ 个人感觉, 学 flutter 最好的时间一个是 18 年底,一个就是现在,否则可以预见等到它继续发展进化下去,早晚也会变成像现在 android 生态一样的一大坨,大量的学习精力都要浪费在走弯路上 |
14
debuggerx 2020-11-20 15:32:25 +08:00 1
@HuHui 不用怀疑,是 flutter/dart-lang 的锅。。。
最近他们的开发团队真的拉跨,不知道是不是 PM 的 KPI 问题导致,新功能加了不少,基础设施和功能各种崩,先是代码提示废,然后是 as4.1 更新后 flutter 环境不识别, 还有一次语法更新 '@required' 变更为 'required',结果语法检查就不通过了…… |
15
lujie2012 2020-11-20 15:35:11 +08:00
现在进行 Flutter 线上项目迁移,开发了 Flutter 入门到现在两个多月,我只想说以后开发 APP 只使用 Flutter 开发。当然 swift 我也是精通的,什么 APP 随便搞。Dart 没有 swift 灵活,比较呆呆的,和 object-c 一样的,但是好歹算是面向对象,万事万物 object 。
我只想说,能坚持 Native 开发到现在,Flutter 解救了我。让我现在变成了两端开发,而且将来变成所有平台的开发。 SwiftUI 的目的,就算让 iOS 开发变成手机,MAC 一体化的开发,不在割裂,本质就算 Flutter 做事情,把 GUI 变成前端化。 所以新手入门移动端开发,SwiftUI 一定是未来,而 Flutter 是有野心的人的未来。 |
16
lujie2012 2020-11-20 15:40:18 +08:00
关于 Flutter 学习成本,可以说现在是最小的,最好的使用,好比到了 Swift5 的阶段了。不在担心版本割裂问题,Google 的文档那是最吊的东西和教程。我的公众号记录了现在的 Flutter 学习历程,英语及 iOS 移动端编程学习笔记,老是说我打广告,我想说,没有广告,只有真实的加班和自我学习记录。麻烦看看在喷。
|
17
lujie2012 2020-11-20 15:44:41 +08:00
dart 目前的 feature 确实跟上不 Flutter 节奏了哈哈,比如隐私声明 ?,var name ?还支持的不好,哈哈。。。。还有类转换安全问题,这个 optional 还是要和 swift 学一学
|
18
cxknmsl 2020-11-20 15:58:38 +08:00
相比于 rn,我觉得 flutter 相当可以了,rn 简直是一坨屎
|
19
murmur 2020-11-20 16:01:08 +08:00 1
rn 的特点是我已经学了 web 前端,再学一点技巧和 api 就可以开发 app
flutter 是你学了 app 开发,等 web 前端你还得回来学 react 或者 vue ng |
20
iFlicker 2020-11-20 16:10:43 +08:00
@lujie2012 你是以 iOS 的角度来看的对吧,作为 Android 开发 这两年 java kotlin dart 都得会,有点冲
|
21
debuggerx 2020-11-20 16:12:43 +08:00
@murmur 个人体验是,原生 app 开发学 react 会一脸懵逼,入门门槛很高;
学 Flutter 门槛稍低,既可以复用一部分原生的知识和思想,也得以有机会了解前端的思想; 已经会了 Flutter 再学现代化前端,就是看下文档熟悉几个 api 的事儿,毫无难度。 |
22
murmur 2020-11-20 16:15:35 +08:00 1
@debuggerx 前端的啥东西学不是一脸懵逼,问题是 h5+native 是个很成熟而且有效的方式,非得想办法抛弃 h5 部分才离谱
|
23
lujie2012 2020-11-20 16:16:44 +08:00
@murmur Flutter 给是 Native 开发的宝贝,是 native 开发者的转型武器。前端同学来搞 Flutter 环境配置,证书,除非你真的是素质和基础很好。前端搞 Flutter,只有在环境和项目已经成熟,之后页面和业务开发来搞那时候是没有问题的。
另外 Flutter 写好,性能等等,目前现状,还是需要很多移动端开发的理解和经验。 |
24
lujie2012 2020-11-20 16:17:55 +08:00
@iFlicker IOS 端不苦逼啊,Object-c 到 swift 到 swiftUI 不需要学习吗?但是有了 Flutter 我才不去学 SwiftUI 了,哈哈哈
swift + Flutter 全平台了!!!! |
25
whypool 2020-11-20 16:19:38 +08:00 via Android
嵌套太傻逼了,如果缩进用 4 空格…
|
26
lujie2012 2020-11-20 16:27:50 +08:00
@murmur Flutter 不是抛弃 H5,H5 什么平台都离不开的,Flutter 的本质需要好好学看看,颠覆了什么东西。
|
27
murmur 2020-11-20 16:30:57 +08:00 1
@lujie2012 flutter 的思路是用游戏引擎的方式,解决跨平台和渲染动画的性能问题,这是再 native 开发者眼中需要的东西,但是对于前端开发者,我是因为学不会 native 才被迫用 cordova rn 这些东西,而且我需要的是一个承诺,一个你帮我解决 native plugin 的承诺,而不是你的引擎多牛逼,生态全给社区。何况,现在的手机,就算是 h5 也不会太慢,所谓的动画,也停留在 os 、ui 层面,一进 app 全员拉跨没几个认真做的。
从这个角度来看,微信小程序做到了,虽然是 h5,但是他用微信的体量为 native plugin 背书。 |
28
hoyixi 2020-11-20 16:36:10 +08:00
快速开发还不是不错的,尤其 UI
不过 G 家的东东,风格都有点奇特,感觉就是:功能犀利,但是长相奇葩,耍起来总有点别扭,不飘逸不优美。 |
29
debuggerx 2020-11-20 16:41:06 +08:00
@murmur 不是很懂你的逻辑,Flutter 又不是要替代 h5 的,我现在给公司写的 app 就是主体部分 Flutter, 动态部分 webview,h5 用的技术栈是 Next.js + ts + Material-UI 。前端技术栈里我最推崇的就是 react,但是在移动端跨平台这个场景下,rn 确实和 Flutter 没法比。
对我个人来说,哪怕需求就是只做移动端单端(android/ios),我也更愿意用 Flutter 而不是原生,就在于它的开发体验和开发效率比原生好太多。 我觉得应该在合适的场景用合适的技术,而不是各种场景都想着用自己熟悉的技术。比如以前 java 开发用 jsp 写页面,比如 php 开发用 php 写运维脚本,比如用 css 写桌面环境…… |
30
lujie2012 2020-11-20 16:51:51 +08:00
@murmur H5 在各自平台上面始终需要中层去帮它做事情。对于 Flutter 第一个改变是 界面开发的改革,不是是学习各种平台的 SDK 你想想看要精通每个平台的 UI SDK 到多少经历,光 IOS 都有 UIKIt,APPKit,多少年了十年了,苹果都不愿意做到两个平台 SDK 一样。现在 SwiftUI 出来就算解决这个问题。而 Flutter 就算解决全部平台的问题,以后开发 window 不需要学 C++,学.net , 后端给数据,前端一套 SDK 解决了。
这就算 QT 做的事情,但是 QT 没有实现移动端的发展,但是 google 是 android 爸爸,flutter 至少在 android 端没有问题。就算 apple 将来封杀 Flutter 那也是不少因为技术的原因,而是因为阻碍技术的原因,抵抗自然规律。 Flutter 更靠近底层,有直接和平台交互的能力,和 Java 一样,一套代码只有有 Java SDK 就没有问题。 H5 有些东西,是没有办法实现的,比如音频,视频处理,比如相机,比如 AR,这些 Flutter 更容易活动平台的能力,本来就算在 Xcode 上面编译,Xcode 有的它都能用,android 有的也能用。 离不开他们,所以还是要学习 android 和 IOS 开发。 你看看 Flutter 关于 page storage,crash 崩溃,还不是依赖本书 android 自身的 API 和能力。H5 没有这样的解决方案,没有性能更好的潜力了。也就是 H5 的性能和解决方案潜力已经到此为止,而 flutter 是目前的潜力就这样,未来更可期待。 另外 dart 还可以开发后端,那就更丰富了开发者的能力,无法弄一个 tomact 一样的容器,实现 severlet 容器。和 nodejs 一样,全栈也可以期待。 因此,Flutter 的收益,你溢出的。。。。而前端,你看看 Nodejs 的发展情况。。。。 |
31
murmur 2020-11-20 17:04:08 +08:00
@debuggerx 大公司和小公司对技术的理解不一样,大公司有足够的团队,有玩票的能力,他可以把一个程序的一个页面改一个架构,然后宣称自己多么多么样,小公司直接整个 app 一个技术栈就扎进去了
所以对于小公司来说,h5 (小程序)、rn 、flutter 就是三选一,说替代没什么问题 也可以这么说,你对 flutter 的看法,是对 native 的补充,还是为学不会 native 的人提供的一个带有取舍的解决方案,会很大程度影响你对 flutter 的评价 |
33
yaphets666 2020-11-20 17:35:08 +08:00
@lwlizhe 这种一套代码多端运行的东西就是小公司 凑合事用的 这种东西也不可能完美 除非是大量的时间做兼容+手机版本不更新了.
|
34
dikey 2020-11-20 17:35:28 +08:00 2
只有我一个人觉得 flutter 的一些控件滑动时候页面虚无缥缈吗……
阻尼很不舒服 |
35
yaphets666 2020-11-20 17:36:28 +08:00 2
我的观点就是.类似这种的东西都是小公司凑合事用的.有追求的公司都得搞 native 原生开发.
|
36
WenhaoWu 2020-11-20 18:09:37 +08:00 via iPhone
我们公司打算 web 也用 flutter 了,三端统一统一 code base 简直起飞
|
37
TomVista 2020-11-20 18:35:13 +08:00
flutter 的布局更新机制,状态机制是真的屎,
写了 3 个月 flutter,感觉布局更新机制,状态机制就是两个字:诡异 |
38
matatabi 2020-11-20 19:08:41 +08:00 via iPhone
Flutter 强无敌
|
39
luwies 2020-11-20 19:13:17 +08:00
android 原生开发,写过半年 RN,当时就觉得 RN 兼容性不好,UI 在不同端表现效果可能会不一样。现在用 flutter 没遇到过这种问题,应该也不会有问题。
现在回过头看 RN,5 年过去了,1.0 版本都还没出来。。。。感觉再过 5 年也不一定能出来,对 RN 已经失去了信心。 以后做 App 肯定是首选 Flutter 的了 |
40
C603H6r18Q1mSP9N 2020-11-20 19:34:03 +08:00
正在用 flutter 写 app,比 uniapp 写的爽,目前来说写 app 最爽的技术
|
41
loginbygoogle 2020-11-20 19:46:13 +08:00
Dart 的泛型功能还不太好用
|
42
PopeyeLau 2020-11-20 19:57:28 +08:00 via iPhone
@loginbygoogle +1 想写个范型的 Response 解析 真是蛋疼……
|
43
IGJacklove 2020-11-20 21:37:15 +08:00 via Android
@KuroNekoFan rn 很多效果都不好做,flutter 上线比 rn 高很多,custom paint 基本可以让你为所欲为。
|
44
IGJacklove 2020-11-20 21:43:14 +08:00 via Android 1
@TomVista 建议看看源码,很简单的。。。flutter 的 state 和 react 的 state 是两回事,flutter 的 setstate 只是把当前 widget 标记为脏组件,下次屏幕刷新的时候就会触发更新。它修改的数据只是普通变量。
|
45
jtsai 2020-11-20 22:08:45 +08:00 via iPhone
uniapp 别吵了
|
46
lujie2012 2020-11-20 22:45:06 +08:00
@IGJacklove 你又说到一个优点,动画,交互,物理,色彩,为所欲为,想怎么搞,怎么搞。这是其他快端无法实现的。完全可以 android APP 做出 iOS 交互,IOS 做出 android 交互,无缝切换。就算多了一个虚拟机给你玩。
|
47
dahhd 2020-11-20 23:36:55 +08:00 via iPhone 2
太年轻,一看就是没踩过坑的,现在夸,后来就要骂了。
|
48
Bijiabo 2020-11-21 00:03:38 +08:00
再等等
|
49
efsg 2020-11-21 00:07:13 +08:00 via Android
用户 mmp,性能太差
|
50
xrr2016 2020-11-21 10:32:38 +08:00
哈哈哈,跟以前比 Flutter 的接受程度越来越高了?
|
51
BigDogWang 2020-11-21 10:41:56 +08:00
感觉没有 SwiftUI 体验好
|
52
20151024 2020-11-21 11:20:24 +08:00
小程序出现,原生岗位数量暴跌;
中小企业倒闭,原生岗位数量暴跌; RN/Flutter 出现,原生岗位数量暴跌; 。。。 iOSer 做错了什么? 你可以说不学习就要被淘汰,可是岗位越来越少,总有人要被淘汰,被淘汰的人又做错了什么? 所以你这种狂赞 Flutter 的帖子,我并不建议发,被老板 /CTO 看到了,又有人要失业了。 年底了,失业是很痛苦的。 |
53
azh7138m 2020-11-21 12:55:55 +08:00
@lujie2012
> H5 有些东西,是没有办法实现的,比如音频,视频处理,比如相机,比如 AR 音视频也都有接口,只是做复杂的处理 js 性能可能跟不上 MediaDevices 也暴露了很多东西出来,摄像头也是可以用的 WebXR 虽然进展缓慢,但是 chrome 上也已经可以体验相关 API |
54
CBS 2020-11-21 13:57:12 +08:00 1
dart 臭烘烘,其他同意……
|
55
WildCat 2020-11-21 14:05:19 +08:00 1
给你泼个冷水,作为一个曾经的 Flutter 粉:
宜家中国、咸鱼 都是重度使用 Flutter,你可以很容易进入奇怪的行为,并且很容易闪退。 |
56
lujie2012 2020-11-21 16:10:43 +08:00
哈哈,对于 iOSer 失业,天花板。我也是如此经历,但是我更多觉得是自己的原因。Flutter 的出现,不是革谁的命。比较不恰当的比喻,中药可以救人几千年如此,但是青霉素,X 光机,新技术的出现不是那些旧的得利者固守城池的理由。
今后还有更多的新人进入移动端领域,他们会学习 swift,swiftUI,flutter 这样的先进西医技术。他们学习完 flutter 之后,不会在局限与 iOS 一个方向,而会进入全平台领域,或者拿 dart 写服务端+sql 数据可以一套语言实现很多服务。 Flutter 不是屁股来占坑的,是科学的解决方案和效率及解救时间和成本的利器。这样后面的新人视野和技术接触范围就会更广阔,不在说你 iOS 开发或者 H5,或者 android,而会说你是大前端开发,各个平台都可以发布应用。 对于 Flutter 现在的 bug 和 issue 还有效果和基础设施,已经是 1.0 release 版本,就算稀烂,这也是正确和最后的解决方案。 希望移动端开发者不在局限在界面开发的泥潭,局限在现有 SDK 的泥潭,我们需要更多时间去接触更多的技术和平台范围。又这样机会,又何乐不为? |
58
KuroNekoFan 2020-11-22 11:24:23 +08:00
@IGJacklove 这个我理解,但是即使是 web,要做一些精细的,定制化的 UI 效果也肯定是脱离了 react 本身在 dom 的层面上去做的啊,这个也不能用‘痛苦’来形容吧
|
59
over140 2020-12-08 15:46:17 +08:00
回帖还挺多,想招 Flutter 大佬开发桌面端,支持全职远程办公,有大佬回复的话我写个详细的招聘帖子 😂
|
60
bloodish 2020-12-09 09:20:06 +08:00
今年用 Flutter + 闲鱼的 Fish Redux 框架做了个企业 App,现学现买的,好用的很.看好 Flutter 的未来.
|
63
fescover 2020-12-15 10:02:03 +08:00
如果 flutter 用 ts,绝不是今天这个发展速度。
|
64
sewer 2020-12-24 23:39:02 +08:00 via iPhone
那要看 开发什么应用了
|
65
Michelangelono 2021-04-09 13:56:17 +08:00
主要 dart 这个语言太难用了,flutter 本身还不错。
|
66
pC0oc4EbCSsJUy4W 2021-04-22 18:19:14 +08:00
还是结合实际场景吧,反正这个东西在 Android 上体验一言难尽
|
67
1219178163 2021-06-04 16:51:36 +08:00
flutter 最大的缺点不是 dart 选型,是没有反射,runtime ;好多代码捷径没法走。一行一行敲本该一个动态方法实现的功能室特别崩溃。
|