
                            
                            因收到Google相关通知，网站将会择期关闭。相关通知内容
                            
                            
                            26 教程总结与展望
                            1. 教程小结

对于应用程序来说，最重要的有两方面: 数据和界面。


数据的信息为界面提供构建资源
界面的交互让数据内容发生变更


学完本教程，希望大家可以意识到 Flutter 中界面由 Widget 派生类来决定；而组件实例化时的配置信息就是界面中所依赖的数据。数据和界面就像一枚硬币的两面，两者相辅相成，缺一不可。用户站在界面的面前，开发者站在数据的面前。作为开发者，我们不能只关注界面，而忽略数据关系。




关于组件(界面)


组件 Widget 作为界面的决定因素，对界面来说，主要就是通过定义组件来处理 构建逻辑(Build Logic) 。在很长一段时间，你自己创建的组件只有 StatelessWidget 和 StatefulWidget 这两个族系。它们可以使用已经存在的组件进行组合，成为新的组件。这种组合形式，可以封装一些构建逻辑，以便复用或拆分结构。

StatefulWidget 依赖 State 状态类完成 build 构建任务，并且 State 有对应的生命周期回调，可以处理相关逻辑；也能使用 setState 方法重新触发当前状态类的构建任务，实现界面更新。

对 State 的认知也伴随你很长的路途，如果希望在 Flutter 有长远的发展，以后有时间和能力时，还是建议从框架底层的源码中去思考状态类的作用，才能看清 Flutter 机器的整个运转流程。




关于数据


数据是界面中依赖的信息，有的数据是死的，在程序运行期间永远不会改变，比如标题的文字、或固定的描述信息。图片、图标等；有些数据是活的，会通过函数进行传递、流动、变化，比如白板中的线列表、木鱼中的功德数、网络文章中的文章列表。

如何获取数据、如果保存数据、如何更改数据，是程序开发者最需要关注的事，数据的维护直接关系到程序功能的正确性。这些处理数据的逻辑可以称为 业务逻辑(Business Logic)。

对于 Flutter 开发者，甚至是任何和界面相关软件的开发者，都需要意识到构建逻辑和业务逻辑这两条命脉。如何合理地维护这两类逻辑，也是今后值得不断深入思考的事。

本教程的总结，我只想点出上面的两点，希望大家可以在以后的路途中铭记于心。



2. 关于 Flutter 组件的认知

Flutter 框架中提供的内置组件估计已经接近 400 个了，每个组件都有各自的特点。把它们一一背下来是不现实的，对于初学者来说，应该注重常用的组件，比如本教程四个案例中涉及到了组件，都可以深入了解一下。组件本质上只是配置信息，通过传参控制界面展示效果，当你了解玩常用组件，其余的都可以一通百通。在日常开发中逐渐接触，把组件看成可以帮里完成构建界面的朋友，而不是不得不接触的敌人。

教程中的四个案例中使用的组件，都没有进行非常细致的介绍。因为：


[1] 并不是非常必要。


考虑到对组件一一介绍起来非常繁琐和无聊，不仅会占据很多的篇幅，而且学起来也很枯燥，很容易拘泥于琐碎的组件而无法对 Flutter 有整体的认知。所以我才构思了四个小项目，让大家在实践中了解它们的存在和使用方式，在交互中体验更有趣。




[2] 已经的历史文章积累。


我在掘金中为很多常用的组件写过专文介绍，大家后期对某个组件感兴趣可以各取所需去了解。专栏地址为 Flutter 组件集录 :






[3] 完善的组件介绍开源项目。




关于Flutter的组件介绍，我有一个使用 Flutter 框架实现开源项目 FlutterUnit ，其中收录了 350 多个组件的介绍和使用范例，支持范例的代码查看和分享。并且支持全平台，可以在手机和电脑上安装应用程序来体验：




主页面
详情页












桌面端界面:






想了解 Flutter 里有哪些组件，或通过组件名搜索查看使用方式， FlutterUnit 都是一个很好的选择。现在项目的 star 个数已经 6000 多了，对于 Flutter 开源项目来说算是比较高了，希望大家可以多多支持。



3. 对未来发展方向的展望

一个侠客行走江湖，需要精进的方向有两个，其一是 修炼内力，其二是 修炼招式 。对于开发者来说，理解底层运转的机理就是内力；如何开发出应用程序就是招式。使用刚步入江湖时，修炼的方向各有不同，人各有志，也不必强求。

如果你并不急着打造一个软件产品，在起步时打牢基础，修炼内力，是不错的选择。这时，推荐你去研读我的七本小册，我称之为 "Flutter 七剑"，助你在未来的道路上披荆斩棘：




小册名称
发布时间
代码仓库
售价(RMB)





《Flutter 绘制指南 - 妙笔生花》
2020年11月11日
idraw
3.28



《Flutter 手势探索 - 执掌天下》
2021年05月13日
itouch
3.5



《Flutter 动画探索 - 流光幻影》
2021年07月09日
ianim
3.5



《Flutter 滑动探索 - 珠联璧合》
2022年02月10日
iscroll
3.5



《Flutter 布局探索 - 薪火相传 》
2022年03月30日
ilayout
3.5



《Flutter 渲染机制 - 聚沙成塔 》
2022年04月27日
irender
3.5



《Flutter 语言基础 - 梦始之地 》
2022年09月14日
idream
3.5






如果你迫于工作压力，或者急需上手开发项目，最好的方式是找一些开源项目来研究，学习招式。这里推荐几个项目，都是在持续维护更新的：


flutter_deer
gsy_github_app_flutter
FlutterUnit (我的)
RegExpo(我的)


另外，如果你学习编程只是业余的兴趣爱好，可以体验一下基于 flame 开发小型游戏，在游戏中学习可谓乐趣无穷。我也写过一个专栏 《Flutter&Flame 游戏专栏》：



其实不管开始修炼的道路是什么，只要想在这江湖中立足，最终内力和招式都要精进。所以不用过于纠结什么先，什么后，需要什么就去修炼什么。到这里，本教程就已经完结了，感谢大家的观看，以后有缘再见 ~

                        
                        
                            