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

我感觉我学习 Flutter 的方式可能有点不对,求指教

  •  
  •   abcbuzhiming · 2021-06-30 00:31:48 +08:00 · 2404 次点击
    这是一个创建于 1028 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我很熟悉 Java,js,所以 dart 对我没啥难度。随便看了看语法就上手了。但是,flutter 自身,我学起来总觉得好别扭:

    我没有移动端 UI 开发的经验,web 端基本也不管界面布局,仅有的 UI 经历都是 windows 桌面开发。理解 flutter 自身结构感到非常的吃力,光 widget 的两种有状态,无状态,就卡了我很久,满脑子就在想——你为什么要设计成这样?这样的意义在哪里。

    而且我看的官方教程,总有一种奇怪的不连贯感,比如教程里讲 widget 的时候着重讲了大量和状态有关的东西。但是到实际例子的时候就发现,咦?这里怎么是这样写的?那个方法和属性是干嘛用的?之前没提啊。。。反正就是觉得 [脱节感]

    我折腾了一周多了,到现在对着官方例子都没有把一个最基本的底部导航栏弄明白。我感到我打开 Flutter 的方式应该出了问题。
    5 条回复    2021-07-08 21:18:37 +08:00
    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       2021-06-30 00:51:15 +08:00 via Android
    你这属于没写过 mv 的 ui 不理解 mv 的那一套哲学
    mv 的那套哲学就是,如果我们现在需要一个可能会发生变动的界面,我们需要先设计一个状态机,然后写一套代码根据状态机的状态去生成我们想要看到的 view,当需要变动 view 时,我们需要做的不是直接去操作某个 view 节点,而是直接去改变状态机的状态,然后在运行一遍代码生成新状态下的 view 完成视觉更新,所以会变的界面就是对应 flutter 的 stateful widget,不会变的界面就对应 stateless widget
    现在的 ui 框架都是这个套路,不需要像 jquery 那样去直接操作具体的某个 view 节点
    0001110001011
        2
    0001110001011  
       2021-06-30 00:52:17 +08:00
    1. 如果你没写过 Android 或者 iOS,那么移动开发,肯定有很多不了解的。这是正常,比如里面的 view,是什么,widget 是什么? 这些都要一个一个的去了解。 没那么 easy

    2. 有状态是通俗说明是通过后面计算 /取数据算出来的,可以局部改变的 view,无状态,就是一个死页面,不会改变的,两者性能不一样,但是你如果非要都用 有状态的,那也可以,无非就又些地方性能没那么好而已

    3. flutter 教程现在网上层次不齐。说句不好的话,官方的 issuess 都太多没解决。 学习吃力,一样,我当时也吃力。
    而且跨平台远远没有说的那么厉害,最多也就是 Android+ios 支持的比较好而已。

    5. 官方的 widge 。数量非常非常多,布局的,控件的,我到现在都没了解完,最多也就了解十来个而已。这也只能多去看看其他源码,慢慢学习。

    上面都是废话,其实一句话总结下来就是,你没开发过移动端,所以很吃力,里面很多思想都是通用的, 多去看看源码,文章, 后面你再转 swift 也更快速。


    6. 有学习疑问,可以进我的交流群来交流,里面有群二维码,我写了个 https://github.com/IT-Weekly/APP <IT-周刊>。支持全平台的 flutter app
    lagoon
        3
    lagoon  
       2021-06-30 09:02:33 +08:00
    要理解意义和为什么这么设计,自然是比较困难。

    加上你并没有 web ui 和 app 开发经验。

    从 Android 进入的我表示 state 这玩意真的是好文明。

    不过事实上 Google 的有些脑洞就是奇葩。毕竟 Flutter 还年轻,还没有千锤百炼。

    “那个方法和属性是干嘛用的”,点开看注释。
    Chan66
        4
    Chan66  
       2021-06-30 16:50:17 +08:00
    去了解一下声明式 UI 可能要好点
    Steaven
        5
    Steaven  
       2021-07-08 21:18:37 +08:00
    我教程都没有看,就看了好多视频,跟着视频写。现在感觉理解了一些,现在不看视频自己摸索写,不懂就查资料。现在第三方的库也挺多的,自己不会写直接用第三方的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3483 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:15 · PVG 19:15 · LAX 04:15 · JFK 07:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.