Flutter 小册 | 状态管理已上架


theme: cyanosis

继路由导航完成后,随着状态管理探索完毕,应用程序构建中的最后一块拼图已经到手。Flutter 实战系列小册再加一名成员:《 Flutter 状态管理: 源码探索与实战

https://s.juejin.cn/ds/iYwHaVxJ/

image.png


1. 目前 Flutter 小册一览

Flutter 框架层基础: 售价 3.5

Flutter 实战系列: 售价 9.9

Flutter 实战系列的四部曲也将迎来最终篇。


2. 路由小册的内容介绍

本册主要探索 Flutter 状态管理的使用与底层原理实现,其中精心设计 5 个由简入难的功能需求,作为探索状态管理的切入点。主要有 4 个部分:

image.png

  • 第一部分:引言与监听通知机制

从状态的含义开始说起,逐渐引入状态管理概念。理解状态管理涉及的核心内容,以及其存在的价值。另外,在真正介绍状态管理之前,全面分析监听体制机制的功能与价值,它们像齿轮一样,嵌在状态管理的底层中,啮合 驱动着状态管理的运作。

image.png

  • 第二部分:探索四大类库使用

本模块将基于流行的四大状态管理类库,了解 provider、flutterbloc、flutterriverpod、get 的基本使用方式。并通过四个由简入难的需求,探讨状态管理的具体价值,以及在此基础上如何对功能需求代码进行层次划分。

image.png

  • 第三部分:实践应用案例

本模块将通过一个较为全面的案例,介绍一下异步数据操作过程中如何管理状态数据。包括加载列表、增加、删除、修改、下拉刷新和上拉加载更多、搜索、搜索历史维护等异步任务。最后还会基于 sqlite 将数据通过本地数据库存储,进一步理解功能需求代码分层架构的意义。

image.png

  • 第四部分:四大类库源码探索

前面是从使用的层面探讨状态管理的价值,最后一个模块将深入四个类库的源码,区分析状态管理的本质。从而可以知其所以然,了解了源码的实现方式,你就可以站在更高的角度去审视状态管理的内涵。使用时更加得心应手。

image.png


3. 本册的阅读环境

Flutter 环境版本对状态管理没什么太大的影响,而且目前主流的状态管理库已经区域稳定。本册将对四个主流的状态管理库进行探索和分析:

image.png

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

image.png

源码中案例的演进独立包装,其中的 main 文件可以独立运行。另外,可在介绍信息中查看对应步骤的情况:

image.png


4. 本册具体案例功能需求

本册精心设计了五个由简到繁的五个功能需求,来探讨状态管理在应用开发中的使用。

  • 深浅主题色切换

深浅主题色是一个比较简单的需求,而且可以体现状态管理的价值。该功能需求中,在 主页设置页 可以设置深浅主题色。在实现过程中,探讨同一个状态数据,如何在多处组件中触发修改:

| 浅色 | 深色 | 首页也提供切换操作| | --- | --- |--- | | b0b701b672f7eee95ea07e94e08f771.jpg |5bd0c0cfbbe53b6aecab9ac32d61852.jpg | cf5df9a9515ba4a5cc6d4ef9efc2caf.jpg |


  • 计数器需求

计数器作梦最开始的地方,承载着 Flutter 开发者最纯粹的回忆。本册中将对计数器的需求进行拓展:

  • 点击增加计数器值
  • 可设置步长
  • 重置计数器
  • 数据持久化存储。

| 计数器界面 | 设置步长 |设置界面中可访问和操作数据 | | --- | --- |--- | | ba348cd17dbc981dca76aa3a47c9671.jpg | 7cb3439909653362a248e6cd38b9a96.jpg| 29f4f6c744b96b8a6e8f8aad5d0dd39.jpg|


  • github search 搜索

    通过搜索 github 仓库,探讨网络请求的处理、以及搜索过程中的状态数据变化。并依次探讨对于一个功能需求的代码结构拆分:

| 未搜索 | 搜索中 | 搜索成功 | | --- | --- |--- | | a63c21e3b823ecfb6bf4d74849a11e1.jpg | ce6e902f1309d67d7459fe7dbc2d756.jpg |754ab5db244284ab5e18a5fa9c21071.jpg |


  • 类库测试案例

在探讨四个状态管理库使用的过程中,会写一些小的测试代码。可以对比它们在完成同一功能需求,存在的差异性和共通点。以及探索源码时的调试测试案例。这里将其放在了第四个 Tab 中:

| 我的界面 | 功能案例页 | 调试测试页 | | --- | --- |--- | | f0b5dffc1ecc3406d23c8932a7e942b.jpg | 6cbc407ea1209cd6e164aed93f4bc87.jpg |19ebe129a744e0b80afbfb6c22997f7.jpg |


  • 秘钥管理综合需求

本着以小见大的考量,本册设计了一个比较综合的案例。从一个记录秘钥的简单的功能入手,逐步展开拓展功能需求。其中包括:

  • 秘钥生成器的操作。
  • 秘钥列表的增删改查交互与数据异步操作。
  • 列表数据的刷新、加载更多功能。
  • 搜索、搜索历史的维护。
  • 数据库持久化等。

| 需要提交 | 提交中 |提交成功 | | --- | --- | --- | | image.png | image.png| c2f0d4fcae9a5ba75fa9e0fff7d8ad0.jpg |

删除与修改交互:

| 删除的 ui 交互 | 删除时 loading 状态 | 修改操作 | --- | --- |--- | | 65.gif | 66.gif |70.gif

下拉刷新和加载更多

| 下拉刷新成功 | 下拉刷新失败 |上拉加载更多 | --- | --- | --- | | 61.gif | 62.gif |64.gif

搜索和历史记录:

| 跳转到搜索页 | 搜索功能 | 删除历史 | | --- | --- |--- | | 73.gif | 74.gif |76.gif |


感谢大家一直以来的支持和陪伴,后期还会带来更精彩的内容~

e5497a6729131a4611e90c7b1495ab7.jpg

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值