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

2021-06-30 00:31:48 +08:00
 abcbuzhiming
我很熟悉 Java,js,所以 dart 对我没啥难度。随便看了看语法就上手了。但是,flutter 自身,我学起来总觉得好别扭:

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

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

我折腾了一周多了,到现在对着官方例子都没有把一个最基本的底部导航栏弄明白。我感到我打开 Flutter 的方式应该出了问题。
2415 次点击
所在节点    Flutter
5 条回复
mxT52CRuqR6o5
2021-06-30 00:51:15 +08:00
你这属于没写过 mv 的 ui 不理解 mv 的那一套哲学
mv 的那套哲学就是,如果我们现在需要一个可能会发生变动的界面,我们需要先设计一个状态机,然后写一套代码根据状态机的状态去生成我们想要看到的 view,当需要变动 view 时,我们需要做的不是直接去操作某个 view 节点,而是直接去改变状态机的状态,然后在运行一遍代码生成新状态下的 view 完成视觉更新,所以会变的界面就是对应 flutter 的 stateful widget,不会变的界面就对应 stateless widget
现在的 ui 框架都是这个套路,不需要像 jquery 那样去直接操作具体的某个 view 节点
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
2021-06-30 09:02:33 +08:00
要理解意义和为什么这么设计,自然是比较困难。

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

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

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

“那个方法和属性是干嘛用的”,点开看注释。
Chan66
2021-06-30 16:50:17 +08:00
去了解一下声明式 UI 可能要好点
Steaven
2021-07-08 21:18:37 +08:00
我教程都没有看,就看了好多视频,跟着视频写。现在感觉理解了一些,现在不看视频自己摸索写,不懂就查资料。现在第三方的库也挺多的,自己不会写直接用第三方的。

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

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

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

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

© 2021 V2EX