flutter学习感觉方式不对,求指教

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

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

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

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

我折腾了一周多了,到现在对着官方例子都没有把一个最基本的底部导航栏弄明白。我感到我打开 Flutter 的方式应该出了问题。
flutter学习感觉方式不对,求指教


更多关于flutter学习感觉方式不对,求指教的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

6 回复

你这属于没写过 mv 的 ui 不理解 mv 的那一套哲学
mv 的那套哲学就是,如果我们现在需要一个可能会发生变动的界面,我们需要先设计一个状态机,然后写一套代码根据状态机的状态去生成我们想要看到的 view,当需要变动 view 时,我们需要做的不是直接去操作某个 view 节点,而是直接去改变状态机的状态,然后在运行一遍代码生成新状态下的 view 完成视觉更新,所以会变的界面就是对应 flutter 的 stateful widget,不会变的界面就对应 stateless widget
现在的 ui 框架都是这个套路,不需要像 jquery 那样去直接操作具体的某个 view 节点

更多关于flutter学习感觉方式不对,求指教的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


  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

要理解意义和为什么这么设计,自然是比较困难。

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

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

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

“那个方法和属性是干嘛用的”,点开看注释。

去了解一下声明式 UI 可能要好点

我教程都没有看,就看了好多视频,跟着视频写。现在感觉理解了一些,现在不看视频自己摸索写,不懂就查资料。现在第三方的库也挺多的,自己不会写直接用第三方的。

针对Flutter学习方式的问题,以下是一些建议,希望能帮助你更有效地学习Flutter:

  1. 明确学习目标:首先,确定你想要通过Flutter实现什么,比如开发跨平台应用、提升开发效率等。明确的目标能帮你更有针对性地学习。
  2. 掌握Dart语言:Dart是Flutter的开发语言,你需要掌握其基础知识,如变量、数据类型、控制结构、函数、类与对象等。这是学习Flutter的基础。
  3. 系统学习Flutter:通过官方文档、视频教程、书籍等资源,系统学习Flutter的Widget系统、布局原理、路由与导航、状态管理等核心概念。
  4. 实践项目:理论知识的学习需要结合实际项目来巩固。尝试自己动手开发一些简单的应用,如天气应用、计时器等,将所学知识应用于实践中。
  5. 参与开源项目:加入GitHub上的Flutter开源项目,通过阅读源码、提交PR等方式,提升自己的代码能力和团队协作能力。
  6. 持续关注行业动态:Flutter技术不断更新,你需要持续关注其官方博客、社区论坛等,了解最新技术动态,紧跟行业发展潮流。

希望这些建议能帮到你,祝你学习顺利!

回到顶部