V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyxtc
V2EX  ›  程序员

看了 Flutter 的 80%的官方文档内容,感觉很好

  •  4
     
  •   fyxtc · 2019-07-26 11:15:53 +08:00 · 10221 次点击
    这是一个创建于 1698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看的时候就觉得和 react 很像,在 FAQ 里面也提到了“ inspired by React."

    整合了 bootstrap 的 gird system,react-route 的理念,直接内建支持丰富的 row/col/flex 布局和路由跳转。对于有 oop 编程经验的来说,dart 这个语言基本不用学,直接上手就好了,跟着做了教程的几个 demo,很舒服,没什么痛点,文档非常完善,主要的 widget (比如 listview)都有配置一分钟视频演示一个 widget 的表现及用法,很赞。

    Material Design 的是 Google 推出的跨平台 UI 设计方案,和 flutter 天然结合,学起来非常顺手。同时也提供了 ios 风格的 cupertino library。真的可以说很贴心了

    IDE 支持 android stuido, IDEA, VSC。我个人是在 VSC 开发的,官方的制作的插件,极其强大,就是加了 VI 插件的 VSC 是真的卡的一批啊。。。。(我还是喜欢 sublime,可惜没有插件)

    顺便说下 firebase,这是 google 提供的一个云 nosql 数据库,可以自己在上面加各种测试数据,可以配合 ios/android/web/unity 使用,前端自己跨设备调试同步数据真的美滋滋。当然 flutter 集成起来一气呵成,毕竟自家的。

    最后,相比 react,我个人更看好 flutter 未来的发展。😁

    第 1 条附言  ·  2019-07-26 14:07:53 +08:00
    不知道为什么大家都在说嵌套的问题,个人觉得这种嵌套还是可以接受的,而且复杂的组件封装一下就好了。怎么说呢,其实前端很难避免不嵌套吧,就算是传统的 ios/android 写法,也是存在嵌套,只不过当时使用的类的嵌套,感觉没有那么明显,现在换成了括号嵌套,直观感觉上可能会强烈一点。我是能比较快的适应这种改变的。

    还有同学说前端很多东西学,我个人不到 3 天就看完这些教程了,其实只要稍微有些经验,过度过来就是熟悉框架思想和 API 的问题。我是很喜欢学习新东西,新技术的。每个框架都有自己的优势和劣势,选择适合自己的才是最好的,但是如果连尝试都不去尝试,怎么有选项呢?

    这里也就是分享一下自己的心得,给没学过的同学或者是 react/rn 开发者,或者是在寻找跨平台解决方案的同学有个大概介绍哈。
    63 条回复    2019-12-20 21:52:46 +08:00
    Cellei
        1
    Cellei  
       2019-07-26 11:54:43 +08:00
    Flutter,学起来
    wangxiaoaer
        2
    wangxiaoaer  
       2019-07-26 11:56:42 +08:00   ❤️ 3
    那屎一样的嵌套能忍?
    guoyuchuan
        3
    guoyuchuan  
       2019-07-26 12:01:48 +08:00
    坑有点多
    ericgui
        4
    ericgui  
       2019-07-26 12:05:55 +08:00 via Android   ❤️ 4
    还是那句话,距离产生美。
    FrankFang128
        5
    FrankFang128  
       2019-07-26 12:06:08 +08:00   ❤️ 1
    @wangxiaoaer 所有 UI 描述语言都有嵌套,不是 Dart / Flutter 的问题
    jziwenchen
        6
    jziwenchen  
       2019-07-26 12:14:57 +08:00
    可以尝试组件化
    xiaozhu5
        7
    xiaozhu5  
       2019-07-26 12:15:07 +08:00
    我觉得 Flutter 什么都好,就是那嵌套让人感觉不爽
    blue0125
        8
    blue0125  
       2019-07-26 12:19:38 +08:00 via Android
    上 pug 模板(手动滑稽)
    opentrade
        9
    opentrade  
       2019-07-26 12:36:18 +08:00 via Android
    真心希望他们接受 dsx 的提议
    anyele
        10
    anyele  
       2019-07-26 12:39:53 +08:00 via Android
    这么多嵌套是真的烦
    scofieldpeng
        11
    scofieldpeng  
       2019-07-26 12:45:56 +08:00
    楼上说嵌套麻烦的,我用起来感觉非常爽,真觉得嵌套深的,为啥不封装一下?
    Vegetable
        12
    Vegetable  
       2019-07-26 12:53:37 +08:00
    我不知道写 ui 怎么才能避免嵌套
    Danswerme
        13
    Danswerme  
       2019-07-26 12:56:39 +08:00 via Android
    有什么 ui 描述语言是没有嵌套的吗?
    starerlloll
        14
    starerlloll  
       2019-07-26 12:59:12 +08:00
    app 复杂了坑就多了
    mikulch
        15
    mikulch  
       2019-07-26 13:04:49 +08:00
    前端到底有多少东西啊。每个都说能替代别人,能够大一统。
    每天都在出要改变世界的框架。
    damngood
        16
    damngood  
       2019-07-26 13:32:06 +08:00
    个人感觉 Swift UI 里面的 链式 /Modifier 构建的方式要比 Flutter 好不少.
    当然嵌套是不可避免的. 只是我更偏向 Swift UI 的构建 UI 的方式.
    luvxy
        17
    luvxy  
       2019-07-26 13:33:25 +08:00
    那个嵌套感觉比 html 还恶心啊
    bullettrain1433
        18
    bullettrain1433  
       2019-07-26 13:35:04 +08:00
    声明式 ui 还是以后的方向,支持,和 swiftui 有异曲同工之妙
    Sniper416
        19
    Sniper416  
       2019-07-26 13:38:15 +08:00
    嵌套太恶心!
    skiy
        20
    skiy  
       2019-07-26 13:47:37 +08:00
    环境搭不起来。不知道是不是墙太厚的原因。
    zdd2389
        21
    zdd2389  
       2019-07-26 13:56:26 +08:00
    同屎一样的嵌套,xml 的嵌套起码前后标签还能对的上,维护起来方便。搞不懂为啥不用 android 原生的那一套来做 ui。起码天然的 mvc 模式,逻辑和 ui 分离看得就舒服,没看出来 flutter 的 ui 写法有什么优势的。
    bigjack
        22
    bigjack  
       2019-07-26 14:04:21 +08:00
    建议放弃,内存占用不是一般的多,响应也有点慢,还有各种嵌套,真有需求建议使用 react-native
    zdd2389
        23
    zdd2389  
       2019-07-26 14:04:38 +08:00   ❤️ 1
    @Vegetable

    @Danswerme 吐槽 flutter 的嵌套,是因为它用括号来表现嵌套,而且因为他的各个都是组件的理念,导致嵌套的层数比 android 原生多的多了,连一个居中都是一个嵌套。
    fyxtc
        24
    fyxtc  
    OP
       2019-07-26 14:09:20 +08:00
    @zdd2389 append 刚加就看到了朋友的回复,我们的想法不谋而合
    winter91
        25
    winter91  
       2019-07-26 14:11:10 +08:00
    @skiy 国内有镜像站
    fyxtc
        26
    fyxtc  
    OP
       2019-07-26 14:11:54 +08:00
    @bigjack 谢谢建议,我们现在的项目就是 RN,下一个项目我应该会建议 Flutter 作为备选技术方案考虑
    murmur
        27
    murmur  
       2019-07-26 14:14:06 +08:00
    如果 flutter 早于 react,那 flutter 是可以吹的,但是现在移动 app 热潮过了,几波大潮过了大家还都是 native,react native 又没有什么致命伤,list 多了性能不好你就不要放那么多数据就好了,所以这个时候他那个反人类的语法就必须喷
    ox180
        28
    ox180  
       2019-07-26 14:17:54 +08:00
    哪位大佬来一个美颜的 sdk ??
    ronaldong
        29
    ronaldong  
       2019-07-26 14:19:42 +08:00
    没什么好喷的,大家各取所需而已,觉得好就用,觉得不好就别用,最后目的不都是为了完成上面交代下来的开发任务吗?
    reus
        30
    reus  
       2019-07-26 14:20:20 +08:00
    嵌套算个屁问题,按一下 % 就能跳转的

    我倒是了解为什么有人喷括号嵌套,又不喷 html 嵌套了

    原来就是喜欢罗嗦
    seeker
        31
    seeker  
       2019-07-26 14:22:45 +08:00
    GUI 天生就是嵌套的
    whypool
        32
    whypool  
       2019-07-26 14:35:29 +08:00
    flutter 嵌套可以叠金字塔了

    html 虽然也玩嵌套,但是节点划分好,要叠金字塔还是很少见

    flutter 连样式也嵌套,不能忍了

    想法挺好的,就是语法太智障,学啥 react,学 ng 用结构绑定语法,样式分离,估计早火起来了
    otakustay
        33
    otakustay  
       2019-07-26 15:21:27 +08:00
    我写了 N 久的 react,拿去 flutter 玩第一个坑就是这货没有 full controlled mode 的概念……
    otakustay
        34
    otakustay  
       2019-07-26 15:23:49 +08:00   ❤️ 2
    1. 吐槽嵌套的,嵌套是 UI 的特性,不是任何语言的特性,想不要嵌套就先从改变世界开始,别对着一个编程语言怼
    2. 我们得承认现在的 UI 开发主流思想确实是 Web 前端带过来的,当然你可以说 WPF 这种更先进,但这先进的东西完全没流行起来
    3. 嵌套为什么看着恶心?难道不是你组件拆得粒度太粗搞得嵌套太深吗?怎么没见人说函数调用嵌套太深呢,因为人人都会拆函数,而不是人人都会拆组件
    hoosin
        35
    hoosin  
       2019-07-26 15:50:26 +08:00
    楼主说的不知所云

    react 和 flutter 没有什么关系,
    一个是 web 层面的东西,一个是客户端控件层面的东西,
    所以这 2 个东西放在一起比较着实牵强
    xFrye
        36
    xFrye  
       2019-07-26 15:59:01 +08:00
    关于嵌套的,可以靠 ide 去做辅助,我看 Android Studio 做的还算不错的,同一层级添加了个辅助线,看上去比 vsc 那种方式舒服
    nguoidiqua
        37
    nguoidiqua  
       2019-07-26 16:14:17 +08:00 via Android
    就知道嵌套嵌套,什么界面不用嵌套?而且其他代码就不要嵌套了?怎么没人说?

    还括号恶心,你平时写别的代码不用括号?方括号加斜杠就好看?其实 Android 用 XML 才真是难看,flutter 这样和普通代码差不多,感觉没那么割裂。

    其实很多人只是不习惯而已,非要带着有色眼镜蒙蔽自己干什么,这只会阻碍你看清事实罢了。
    madtcsa
        38
    madtcsa  
       2019-07-26 16:19:00 +08:00
    原生代码写界面也是嵌套。只是对于开发者,看起来更直观,更友好而已。可以多层封装,减少视觉上的嵌套。
    momocraft
        39
    momocraft  
       2019-07-26 16:31:02 +08:00
    我自己写 react 和 rn 也是四处 <Vertical><VerticalCenter> ... </VerticalCenter></Vertical> ,看了你们讨论觉得有点罪恶 lol
    ronaldong
        40
    ronaldong  
       2019-07-26 16:31:20 +08:00
    作为 android 开发,我现在确实觉得 xml 写起来也其实挺痛苦的,给每个控件取一个 id 太难了,最近写了 flutter 之后,我才发现这东西很好用,嵌套太多的问题其实也很好解决,自己多把组件抽出来就好看多了。
    fyxtc
        41
    fyxtc  
    OP
       2019-07-26 16:31:26 +08:00   ❤️ 1
    @hoosin 直接的比较当然是 rn,rn 和 react 一脉相承,懂的人自然懂,如果不知所云,那就不知所云吧
    fyxtc
        42
    fyxtc  
    OP
       2019-07-26 16:35:07 +08:00
    @madtcsa 是这样的,而且 xcode 的开发流程可以说做到极致体验了,不过没法跨平台,所以工具是只有最合适的工具,不存在最好的工具。
    fyxtc
        43
    fyxtc  
    OP
       2019-07-26 16:45:27 +08:00
    @whypool 我没太明白你的观点,叠金字塔这种,任何闭包特性的语言都能做到一个 callback hell,并且最基本的语言都能做到无限 if,这个怪到语言层面太牵强了。样式那个,你完全可以把 styles 分离到另一个文件,甚至可以抽取到 widget 里面。写 UI 难道不用写样式吗,强如 xcode 也需要自定义样式,只不过他放在了 ide 层面,代码层面的话,rn 是这么做的,web 也是这么做的,这种理念就是从 web 迁移到 app 的。至于觉得那种方式更好我觉得很难定义,我个人两种方式都能接受,哪种框架的解决方案更适合当前需求,我就会考虑那种方案,至于你说的这些点在我看来完全不是评估的点。
    CommandZi
        44
    CommandZi  
       2019-07-26 16:58:53 +08:00
    没人吐槽嵌套,楼上也只是吐槽「 flutter 的嵌套」,一大堆人~
    好比某人吐槽某只(泰迪)眼睛丑,「所有狗都有眼睛,这是不可避免的」「泰迪都是两只眼睛,那边那只也有两只眼睛,你怎么不说它丑」「就知道眼睛眼睛,哪只泰迪没有眼睛」「吐槽眼睛的,这是动物的特性,想不要眼睛的,你可以去改世界」
    啧啧啧,写着写着笑出声
    otakustay
        45
    otakustay  
       2019-07-26 17:25:16 +08:00
    @CommandZi 问题在于,他们指着一条正常的狗说丑,那丑就是狗的天性了呗。flutter 完全没有比任何其它 UI 构建的语言或框架更丑啊……
    otakustay
        46
    otakustay  
       2019-07-26 17:33:56 +08:00
    我回忆了一下,确实好像是有不嵌套的 UI 开发的写法的,大概是这么写的:

    const conatiner = new CardLayout();
    const textbox = new TextBox();
    textbox.left = 30;
    textbox.right = 40;
    container.addChild(container);

    没错,不嵌套了,我认了……
    huage2580
        47
    huage2580  
       2019-07-26 17:36:12 +08:00
    我尝试着混合开发了,问题很多,说实话,真心达到稳定,感觉等一年后吧。现在尝鲜,只能踩着坑走
    ronaldong
        48
    ronaldong  
       2019-07-26 17:54:12 +08:00
    @huage2580 我最近也在做混合开发,你目前遇到了哪些问题,能分享下吗?
    dremy
        49
    dremy  
       2019-07-26 17:58:37 +08:00 via iPhone
    不嵌套的话,难道全部都用绝对布局吗?搞得和做 ppt 一样了
    encro
        50
    encro  
       2019-07-26 18:10:37 +08:00
    嵌套的解决方案是开发 widget,这样就嵌套在别的地方去了,而不是当前页面。

    不过不理解闲鱼 iOS 为什么那么卡。
    skiy
        51
    skiy  
       2019-07-26 19:04:52 +08:00 via Android
    @winter91 知道。我是说 android 的。唉。本想试用一下。搞不定
    murmur
        52
    murmur  
       2019-07-26 19:09:25 +08:00
    @nguoidiqua XML 也好,HTML 也好,都近乎于标准,而且在 ide 的加持下不需要打多少关键字的,flutter 除了信仰还有什么
    U2Fsd
        53
    U2Fsd  
       2019-07-26 19:56:02 +08:00
    然而我试了好几个 Futter 的开源项目。。跑在 iOS 上的时候滑动或切换列表都会掉帧。

    难道是我打开的姿势不对么。。
    kwrush
        54
    kwrush  
       2019-07-26 20:20:12 +08:00
    @mikulch flutter 不是专为前端开发设计的
    ianva
        55
    ianva  
       2019-07-26 20:50:59 +08:00
    嵌套的本质不就是 function compose 么,react 为什么比哪些模板强,因为开发他的人 理解 FP,原本 用 compose 能解决的问题为什么需要各种模板,这也是 JSX 比哪些模板们强大的地方,直接转换成相应的 function compose
    gustav
        56
    gustav  
       2019-07-26 21:15:15 +08:00
    生态差太远,最后就是到处嵌 web view,还不如直接用 js
    Rorysky
        57
    Rorysky  
       2019-07-26 21:55:24 +08:00 via iPhone
    @kwrush 你这说的... 那还能用在哪里? 目前也就前端对这个有点兴趣吧
    murmur
        58
    murmur  
       2019-07-26 22:03:25 +08:00
    @ianva react 的原因一是市场早,二是 rn 加成,三是洋人信仰加成,如果 compose 真的那么牛逼,vue 也不会抢下一大块份额来
    djyde
        59
    djyde  
       2019-07-27 00:22:57 +08:00
    JSX 出来的时候,个个都说丑。现在 flutter 没有 JSX, 又说嵌套恶心。
    murmur
        60
    murmur  
       2019-07-27 09:48:32 +08:00
    @djyde jsx 丑是因为那个时候还没出 vue 的 template 简写,后来 vue2 出来了,有的对比才有的喷
    FrankFang128
        61
    FrankFang128  
       2019-07-27 14:40:49 +08:00
    @otakustay 层级深一点,你的代码就会倾向于嵌套了
    maomaomao001
        62
    maomaomao001  
       2019-12-16 11:58:21 +08:00
    真的是惊呆了,嵌套问题那么早开始了,居然最新版本依然还是那样,inspired by react, 为什么就不能学学它的 jsx 呢

    (感觉和那个 微软员工再直播中安装谷歌比较类似, 口口声声说他们这么回调写法多好多优雅,结果自己直播翻车,然后复制粘贴解决问题....)
    附赠官方翻车视频: (第 8 分钟开始)
    https://www.bilibili.com/video/av79096823
    xinyu391
        63
    xinyu391  
       2019-12-20 21:52:46 +08:00
    请问 firebase 云 db 国内 app 使用方便吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4985 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 03:59 · PVG 11:59 · LAX 20:59 · JFK 23:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.