Flutter 的开发体验真的是很好

2020-11-20 14:43:40 +08:00
 opentrade

虽然需要一点时间适应,FFI, Provider, 完整的界面库,完整的开发环境,连 dart 语言都是那么的可爱,原来不适应嵌套,用习惯了也觉得设计很完美。想起以前搞 React Native 那个痛苦,Flutter 简直就是颠覆。

11810 次点击
所在节点    Flutter
69 条回复
huruwo
2020-11-20 14:50:42 +08:00
其他的都行 不过 dart 他真的不可爱
richzhu
2020-11-20 14:52:47 +08:00
我擦 react native 痛苦完全同意,但是 dart 真的可爱嘛?
dying4death
2020-11-20 14:55:23 +08:00
dart 真的可以,比 java 好用多了。异步编程比 kotlin 协程还方便
zzzzzzggggggg
2020-11-20 14:58:57 +08:00
+1
opentrade
2020-11-20 15:04:15 +08:00
不可爱吗?

class PureStatic {
PureStatic ._();
}

class Singleton {
...
factory Singleton() => _instance;
}
KuroNekoFan
2020-11-20 15:04:42 +08:00
好奇 react native 为啥痛苦
janxin
2020-11-20 15:13:57 +08:00
开启了 null safty 之后体验进一步上升,不过也没那么好,有一些槽点
debuggerx
2020-11-20 15:15:06 +08:00
其实,现在的体验已经没有一开始好了……
我是 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" 这个字符串的定义,可以说是非常难用了
huobazi
2020-11-20 15:17:35 +08:00
Flutter 是真不错,期待更好!
janxin
2020-11-20 15:19:16 +08:00
@debuggerx 1 、3 槽点非常同意,现在我都是跟着看 Widget of the week 看看有没有什么好用的 widget

2 其实语法糖可以人为限制使用,其实我还需要更多语法糖 2333
lwlizhe
2020-11-20 15:27:25 +08:00
泼点冷水

这都多长时间了……issue 数量还是没降低……

另外有些功能缺失确实好难受啊,比如说嵌套滑动这块……

年初的时候就发现了问题,搞了半天也没发现完美的解决方案,目前我这只能做到最多有两个子滑动 Widget 的嵌套滑动;
前段时间发现有人在掘金上尝试解决这个问题,结果还是那样…………问题还是一样在快速滑动的情况下……

Flutter 要走的路感觉还蛮长的
HuHui
2020-11-20 15:27:47 +08:00
@debuggerx 我说呢,最近重拾 flutter,我还以为是 ide 不兼容
debuggerx
2020-11-20 15:27:52 +08:00
@janxin 是的,Widget of the week 我也看,官方出品质量保证。
再推荐一个博客,经常能看到最新最炫的东西:
https://flutterweekly.dev/archives/
个人感觉, 学 flutter 最好的时间一个是 18 年底,一个就是现在,否则可以预见等到它继续发展进化下去,早晚也会变成像现在 android 生态一样的一大坨,大量的学习精力都要浪费在走弯路上
debuggerx
2020-11-20 15:32:25 +08:00
@HuHui 不用怀疑,是 flutter/dart-lang 的锅。。。
最近他们的开发团队真的拉跨,不知道是不是 PM 的 KPI 问题导致,新功能加了不少,基础设施和功能各种崩,先是代码提示废,然后是 as4.1 更新后 flutter 环境不识别, 还有一次语法更新 '@required' 变更为 'required',结果语法检查就不通过了……
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 是有野心的人的未来。
lujie2012
2020-11-20 15:40:18 +08:00
关于 Flutter 学习成本,可以说现在是最小的,最好的使用,好比到了 Swift5 的阶段了。不在担心版本割裂问题,Google 的文档那是最吊的东西和教程。我的公众号记录了现在的 Flutter 学习历程,英语及 iOS 移动端编程学习笔记,老是说我打广告,我想说,没有广告,只有真实的加班和自我学习记录。麻烦看看在喷。
lujie2012
2020-11-20 15:44:41 +08:00
dart 目前的 feature 确实跟上不 Flutter 节奏了哈哈,比如隐私声明 ?,var name ?还支持的不好,哈哈。。。。还有类转换安全问题,这个 optional 还是要和 swift 学一学
cxknmsl
2020-11-20 15:58:38 +08:00
相比于 rn,我觉得 flutter 相当可以了,rn 简直是一坨屎
murmur
2020-11-20 16:01:08 +08:00
rn 的特点是我已经学了 web 前端,再学一点技巧和 api 就可以开发 app
flutter 是你学了 app 开发,等 web 前端你还得回来学 react 或者 vue ng
iFlicker
2020-11-20 16:10:43 +08:00
@lujie2012 你是以 iOS 的角度来看的对吧,作为 Android 开发 这两年 java kotlin dart 都得会,有点冲

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

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

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

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

© 2021 V2EX