Flutter的开发体验真的是很好

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

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


Flutter的开发体验真的是很好
70 回复

其他的都行 不过 dart 他真的不可爱

更多关于Flutter的开发体验真的是很好的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


我擦 react native 痛苦完全同意,但是 dart 真的可爱嘛?

dart 真的可以,比 java 好用多了。异步编程比 kotlin 协程还方便

不可爱吗?

class PureStatic {
PureStatic ._();
}

class Singleton {

factory Singleton() => _instance;
}

好奇 react native 为啥痛苦

开启了 null safty 之后体验进一步上升,不过也没那么好,有一些槽点

其实,现在的体验已经没有一开始好了……
我是 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” 这个字符串的定义,可以说是非常难用了

Flutter 是真不错,期待更好!

1 、3 槽点非常同意,现在我都是跟着看 Widget of the week 看看有没有什么好用的 widget

2 其实语法糖可以人为限制使用,其实我还需要更多语法糖 2333

泼点冷水

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

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

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

Flutter 要走的路感觉还蛮长的

我说呢,最近重拾 flutter,我还以为是 ide 不兼容

是的,Widget of the week 我也看,官方出品质量保证。
再推荐一个博客,经常能看到最新最炫的东西:
https://flutterweekly.dev/archives/
个人感觉, 学 flutter 最好的时间一个是 18 年底,一个就是现在,否则可以预见等到它继续发展进化下去,早晚也会变成像现在 android 生态一样的一大坨,大量的学习精力都要浪费在走弯路上

不用怀疑,是 flutter/dart-lang 的锅。。。
最近他们的开发团队真的拉跨,不知道是不是 PM 的 KPI 问题导致,新功能加了不少,基础设施和功能各种崩,先是代码提示废,然后是 as4.1 更新后 flutter 环境不识别, 还有一次语法更新 ‘required’ 变更为 ‘required’,结果语法检查就不通过了……

现在进行 Flutter 线上项目迁移,开发了 Flutter 入门到现在两个多月,我只想说以后开发 APP 只使用 Flutter 开发。当然 swift 我也是精通的,什么 APP 随便搞。Dart 没有 swift 灵活,比较呆呆的,和 object-c 一样的,但是好歹算是面向对象,万事万物 object 。
我只想说,能坚持 Native 开发到现在,Flutter 解救了我。让我现在变成了两端开发,而且将来变成所有平台的开发。

SwiftUI 的目的,就算让 iOS 开发变成手机,MAC 一体化的开发,不在割裂,本质就算 Flutter 做事情,把 GUI 变成前端化。

所以新手入门移动端开发,SwiftUI 一定是未来,而 Flutter 是有野心的人的未来。

关于 Flutter 学习成本,可以说现在是最小的,最好的使用,好比到了 Swift5 的阶段了。不在担心版本割裂问题,Google 的文档那是最吊的东西和教程。我的公众号记录了现在的 Flutter 学习历程,英语及 iOS 移动端编程学习笔记,老是说我打广告,我想说,没有广告,只有真实的加班和自我学习记录。麻烦看看在喷。

dart 目前的 feature 确实跟上不 Flutter 节奏了哈哈,比如隐私声明 ?,var name ?还支持的不好,哈哈。。。。还有类转换安全问题,这个 optional 还是要和 swift 学一学

相比于 rn,我觉得 flutter 相当可以了,rn 简直是一坨屎

rn 的特点是我已经学了 web 前端,再学一点技巧和 api 就可以开发 app
flutter 是你学了 app 开发,等 web 前端你还得回来学 react 或者 vue ng

你是以 iOS 的角度来看的对吧,作为 Android 开发 这两年 java kotlin dart 都得会,有点冲

个人体验是,原生 app 开发学 react 会一脸懵逼,入门门槛很高;
学 Flutter 门槛稍低,既可以复用一部分原生的知识和思想,也得以有机会了解前端的思想;
已经会了 Flutter 再学现代化前端,就是看下文档熟悉几个 api 的事儿,毫无难度。

前端的啥东西学不是一脸懵逼,问题是 h5+native 是个很成熟而且有效的方式,非得想办法抛弃 h5 部分才离谱

Flutter 给是 Native 开发的宝贝,是 native 开发者的转型武器。前端同学来搞 Flutter 环境配置,证书,除非你真的是素质和基础很好。前端搞 Flutter,只有在环境和项目已经成熟,之后页面和业务开发来搞那时候是没有问题的。

另外 Flutter 写好,性能等等,目前现状,还是需要很多移动端开发的理解和经验。

IOS 端不苦逼啊,Object-c 到 swift 到 swiftUI 不需要学习吗?但是有了 Flutter 我才不去学 SwiftUI 了,哈哈哈
swift + Flutter 全平台了!!!!

嵌套太傻逼了,如果缩进用 4 空格…

Flutter 不是抛弃 H5,H5 什么平台都离不开的,Flutter 的本质需要好好学看看,颠覆了什么东西。

flutter 的思路是用游戏引擎的方式,解决跨平台和渲染动画的性能问题,这是再 native 开发者眼中需要的东西,但是对于前端开发者,我是因为学不会 native 才被迫用 cordova rn 这些东西,而且我需要的是一个承诺,一个你帮我解决 native plugin 的承诺,而不是你的引擎多牛逼,生态全给社区。何况,现在的手机,就算是 h5 也不会太慢,所谓的动画,也停留在 os 、ui 层面,一进 app 全员拉跨没几个认真做的。

从这个角度来看,微信小程序做到了,虽然是 h5,但是他用微信的体量为 native plugin 背书。

快速开发还不是不错的,尤其 UI
不过 G 家的东东,风格都有点奇特,感觉就是:功能犀利,但是长相奇葩,耍起来总有点别扭,不飘逸不优美。

不是很懂你的逻辑,Flutter 又不是要替代 h5 的,我现在给公司写的 app 就是主体部分 Flutter, 动态部分 webview,h5 用的技术栈是 Next.js + ts + Material-UI 。前端技术栈里我最推崇的就是 react,但是在移动端跨平台这个场景下,rn 确实和 Flutter 没法比。
对我个人来说,哪怕需求就是只做移动端单端(android/ios),我也更愿意用 Flutter 而不是原生,就在于它的开发体验和开发效率比原生好太多。
我觉得应该在合适的场景用合适的技术,而不是各种场景都想着用自己熟悉的技术。比如以前 java 开发用 jsp 写页面,比如 php 开发用 php 写运维脚本,比如用 css 写桌面环境……

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 的发展情况。。。。

大公司和小公司对技术的理解不一样,大公司有足够的团队,有玩票的能力,他可以把一个程序的一个页面改一个架构,然后宣称自己多么多么样,小公司直接整个 app 一个技术栈就扎进去了

所以对于小公司来说,h5 (小程序)、rn 、flutter 就是三选一,说替代没什么问题

也可以这么说,你对 flutter 的看法,是对 native 的补充,还是为学不会 native 的人提供的一个带有取舍的解决方案,会很大程度影响你对 flutter 的评价

纯前端没 APP 开发经验的话,搞 RN 也难受。之前搞过,稍微偏底层机器一点的问题都焦头烂额。

这种一套代码多端运行的东西就是小公司 凑合事用的 这种东西也不可能完美 除非是大量的时间做兼容+手机版本不更新了.

只有我一个人觉得 flutter 的一些控件滑动时候页面虚无缥缈吗……

阻尼很不舒服

我的观点就是.类似这种的东西都是小公司凑合事用的.有追求的公司都得搞 native 原生开发.

我们公司打算 web 也用 flutter 了,三端统一统一 code base 简直起飞

flutter 的布局更新机制,状态机制是真的屎,

写了 3 个月 flutter,感觉布局更新机制,状态机制就是两个字:诡异

Flutter 强无敌

android 原生开发,写过半年 RN,当时就觉得 RN 兼容性不好,UI 在不同端表现效果可能会不一样。现在用 flutter 没遇到过这种问题,应该也不会有问题。

现在回过头看 RN,5 年过去了,1.0 版本都还没出来。。。。感觉再过 5 年也不一定能出来,对 RN 已经失去了信心。

以后做 App 肯定是首选 Flutter 的了

正在用 flutter 写 app,比 uniapp 写的爽,目前来说写 app 最爽的技术

Dart 的泛型功能还不太好用

+1 想写个范型的 Response 解析 真是蛋疼……

rn 很多效果都不好做,flutter 上线比 rn 高很多,custom paint 基本可以让你为所欲为。

建议看看源码,很简单的。。。flutter 的 state 和 react 的 state 是两回事,flutter 的 setstate 只是把当前 widget 标记为脏组件,下次屏幕刷新的时候就会触发更新。它修改的数据只是普通变量。

uniapp 别吵了

你又说到一个优点,动画,交互,物理,色彩,为所欲为,想怎么搞,怎么搞。这是其他快端无法实现的。完全可以 android APP 做出 iOS 交互,IOS 做出 android 交互,无缝切换。就算多了一个虚拟机给你玩。

太年轻,一看就是没踩过坑的,现在夸,后来就要骂了。

用户 mmp,性能太差

哈哈哈,跟以前比 Flutter 的接受程度越来越高了?

感觉没有 SwiftUI 体验好

小程序出现,原生岗位数量暴跌;
中小企业倒闭,原生岗位数量暴跌;
RN/Flutter 出现,原生岗位数量暴跌;
。。。
iOSer 做错了什么?
你可以说不学习就要被淘汰,可是岗位越来越少,总有人要被淘汰,被淘汰的人又做错了什么?
所以你这种狂赞 Flutter 的帖子,我并不建议发,被老板 /CTO 看到了,又有人要失业了。
年底了,失业是很痛苦的。


> H5 有些东西,是没有办法实现的,比如音频,视频处理,比如相机,比如 AR

音视频也都有接口,只是做复杂的处理 js 性能可能跟不上
MediaDevices 也暴露了很多东西出来,摄像头也是可以用的
WebXR 虽然进展缓慢,但是 chrome 上也已经可以体验相关 API

dart 臭烘烘,其他同意……

给你泼个冷水,作为一个曾经的 Flutter 粉:
宜家中国、咸鱼 都是重度使用 Flutter,你可以很容易进入奇怪的行为,并且很容易闪退。

哈哈,对于 iOSer 失业,天花板。我也是如此经历,但是我更多觉得是自己的原因。Flutter 的出现,不是革谁的命。比较不恰当的比喻,中药可以救人几千年如此,但是青霉素,X 光机,新技术的出现不是那些旧的得利者固守城池的理由。
今后还有更多的新人进入移动端领域,他们会学习 swift,swiftUI,flutter 这样的先进西医技术。他们学习完 flutter 之后,不会在局限与 iOS 一个方向,而会进入全平台领域,或者拿 dart 写服务端+sql 数据可以一套语言实现很多服务。
Flutter 不是屁股来占坑的,是科学的解决方案和效率及解救时间和成本的利器。这样后面的新人视野和技术接触范围就会更广阔,不在说你 iOS 开发或者 H5,或者 android,而会说你是大前端开发,各个平台都可以发布应用。

对于 Flutter 现在的 bug 和 issue 还有效果和基础设施,已经是 1.0 release 版本,就算稀烂,这也是正确和最后的解决方案。
希望移动端开发者不在局限在界面开发的泥潭,局限在现有 SDK 的泥潭,我们需要更多时间去接触更多的技术和平台范围。又这样机会,又何乐不为?

dymanic 可以拿来当成范型使用

这个我理解,但是即使是 web,要做一些精细的,定制化的 UI 效果也肯定是脱离了 react 本身在 dom 的层面上去做的啊,这个也不能用‘痛苦’来形容吧

回帖还挺多,想招 Flutter 大佬开发桌面端,支持全职远程办公,有大佬回复的话我写个详细的招聘帖子 😂

今年用 Flutter + 闲鱼的 Fish Redux 框架做了个企业 App,现学现买的,好用的很.看好 Flutter 的未来.

兼职考虑不?

兼职不考虑,需要全职,很适合奶爸大神,在家办公

如果 flutter 用 ts,绝不是今天这个发展速度。

那要看 开发什么应用了

主要 dart 这个语言太难用了,flutter 本身还不错。

还是结合实际场景吧,反正这个东西在 Android 上体验一言难尽

flutter 最大的缺点不是 dart 选型,是没有反射,runtime ;好多代码捷径没法走。一行一行敲本该一个动态方法实现的功能室特别崩溃。

好奇问下什么业务方向?

Flutter 桌面端主要是做端对端加密聊天

确实,Flutter作为一款由Google开发的开源UI工具包,以其卓越的开发体验赢得了广大开发者的青睐。

Flutter采用Dart语言作为开发语言,这种语言简洁明了,易于上手,同时性能也相当出色。开发者可以通过一套代码同时构建适用于iOS和Android平台的应用程序,极大地提高了开发效率,降低了维护成本。

在UI设计方面,Flutter提供了丰富的控件和布局方式,使得开发者可以轻松地构建出美观、流畅的用户界面。同时,Flutter的渲染引擎基于Skia图形库,能够实现高性能的2D渲染,保证了应用的流畅性和响应速度。

此外,Flutter还具备强大的热重载功能。在开发过程中,开发者可以实时预览代码更改的效果,无需重启应用或重新编译代码,这极大地提升了开发体验,使得调试和优化变得更加便捷。

当然,Flutter也并非完美无缺。由于其采用了一套独立的渲染引擎和控件库,因此在某些特定场景下可能需要额外的工作量来适配不同的平台。但总体来说,Flutter的开发体验无疑是非常出色的。

综上所述,如果你正在寻找一款能够提升开发效率、降低维护成本,同时又能够提供高性能和美观用户界面的UI工具包,那么Flutter无疑是一个值得尝试的选择。

回到顶部