theme: cyanosis
继路由导航完成后,随着状态管理探索完毕,应用程序构建中的最后一块拼图已经到手。Flutter 实战系列小册再加一名成员:《 Flutter 状态管理: 源码探索与实战》
https://s.juejin.cn/ds/iYwHaVxJ/
1. 目前 Flutter 小册一览
- [
免费
]《Flutter 入门教程》
Flutter 框架层基础: 售价
3.5
元
- 《Flutter 绘制指南 - 妙笔生花》
- 《Flutter 动画探索 - 流光幻影》
- 《Flutter 手势探索 - 执掌天下》
- 《Flutter 滑动探索 - 珠联璧合》
- 《Flutter 布局探索 - 薪火相传》
- 《Flutter 渲染机制 - 聚沙成塔》
- 《Flutter 语言基础 - 梦始之地》
Flutter 实战系列: 售价
9.9
元
Flutter 实战系列的四部曲也将迎来最终篇。
2. 路由小册的内容介绍
本册主要探索 Flutter 状态管理的使用与底层原理实现,其中精心设计 5 个由简入难的功能需求,作为探索状态管理的切入点。主要有 4 个部分:
- 第一部分:引言与监听通知机制
从状态的含义开始说起,逐渐引入状态管理概念。理解状态管理涉及的核心内容,以及其存在的价值。另外,在真正介绍状态管理之前,全面分析监听体制机制的功能与价值,它们像齿轮一样,嵌在状态管理的底层中,啮合 驱动着状态管理的运作。
- 第二部分:探索四大类库使用
本模块将基于流行的四大状态管理类库,了解 provider、flutterbloc、flutterriverpod、get 的基本使用方式。并通过四个由简入难的需求,探讨状态管理的具体价值,以及在此基础上如何对功能需求代码进行层次划分。
- 第三部分:实践应用案例
本模块将通过一个较为全面的案例,介绍一下异步数据操作过程中如何管理状态数据。包括加载列表、增加、删除、修改、下拉刷新和上拉加载更多、搜索、搜索历史维护等异步任务。最后还会基于 sqlite 将数据通过本地数据库存储,进一步理解功能需求代码分层架构的意义。
- 第四部分:四大类库源码探索
前面是从使用的层面探讨状态管理的价值,最后一个模块将深入四个类库的源码,区分析状态管理的本质。从而可以知其所以然,了解了源码的实现方式,你就可以站在更高的角度去审视状态管理的内涵。使用时更加得心应手。
3. 本册的阅读环境
Flutter 环境版本对状态管理没什么太大的影响,而且目前主流的状态管理库已经区域稳定。本册将对四个主流的状态管理库进行探索和分析:
Flutter 3.19.5 • channel stable • https://github.com/flutter/flutter.git Framework • revision 300451adae (12 days ago) • 2024-03-27 21:54:07 -0500 Engine • revision e76c956498 Tools • Dart 3.3.3 • DevTools 2.31.1
本册所有的源码,放在 github 中。阅读时建议结合项目代码 istate :
https://github.com/toly1994328/istate
源码中案例的演进独立包装,其中的 main
文件可以独立运行。另外,可在介绍信息中查看对应步骤的情况:
4. 本册具体案例功能需求
本册精心设计了五个由简到繁的五个功能需求,来探讨状态管理在应用开发中的使用。
- 深浅主题色切换
深浅主题色是一个比较简单的需求,而且可以体现状态管理的价值。该功能需求中,在 主页
和 设置页
可以设置深浅主题色。在实现过程中,探讨同一个状态数据,如何在多处组件中触发修改:
| 浅色 | 深色 | 首页也提供切换操作| | --- | --- |--- | | | | |
- 计数器需求
计数器作梦最开始的地方,承载着 Flutter 开发者最纯粹的回忆。本册中将对计数器的需求进行拓展:
- 点击增加计数器值
- 可设置步长
- 重置计数器
- 数据持久化存储。
| 计数器界面 | 设置步长 |设置界面中可访问和操作数据 | | --- | --- |--- | | | | |
github search 搜索
通过搜索 github 仓库,探讨网络请求的处理、以及搜索过程中的状态数据变化。并依次探讨对于一个功能需求的代码结构拆分:
| 未搜索 | 搜索中 | 搜索成功 | | --- | --- |--- | | | | |
- 类库测试案例
在探讨四个状态管理库使用的过程中,会写一些小的测试代码。可以对比它们在完成同一功能需求,存在的差异性和共通点。以及探索源码时的调试测试案例。这里将其放在了第四个 Tab 中:
| 我的界面 | 功能案例页 | 调试测试页 | | --- | --- |--- | | | | |
- 秘钥管理综合需求
本着以小见大的考量,本册设计了一个比较综合的案例。从一个记录秘钥的简单的功能入手,逐步展开拓展功能需求。其中包括:
- 秘钥生成器的操作。
- 秘钥列表的增删改查交互与数据异步操作。
- 列表数据的刷新、加载更多功能。
- 搜索、搜索历史的维护。
- 数据库持久化等。
| 需要提交 | 提交中 |提交成功 | | --- | --- | --- | | | | |
删除与修改交互:
| 删除的 ui 交互 | 删除时 loading 状态 | 修改操作 | --- | --- |--- | | | |
下拉刷新和加载更多
| 下拉刷新成功 | 下拉刷新失败 |上拉加载更多 | --- | --- | --- | | | |
搜索和历史记录:
| 跳转到搜索页 | 搜索功能 | 删除历史 | | --- | --- |--- | | | | |
感谢大家一直以来的支持和陪伴,后期还会带来更精彩的内容~