likes
comments
collection
share

Flutter 小册 | 状态管理已上架

作者站长头像
站长
· 阅读数 3

Flutter 小册 | 状态管理已上架


1. 目前 Flutter 小册一览

Flutter 框架层基础: 售价 3.5

Flutter 实战系列: 售价 9.9

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


2. 路由小册的内容介绍

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

Flutter 小册 | 状态管理已上架

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

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

Flutter 小册 | 状态管理已上架

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

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

Flutter 小册 | 状态管理已上架

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

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

Flutter 小册 | 状态管理已上架

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

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

Flutter 小册 | 状态管理已上架


3. 本册的阅读环境

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

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

github.com/toly1994328…

Flutter 小册 | 状态管理已上架

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

Flutter 小册 | 状态管理已上架


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

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

  • 深浅主题色切换

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

浅色深色首页也提供切换操作
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

  • 计数器需求

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

  • 点击增加计数器值
  • 可设置步长
  • 重置计数器
  • 数据持久化存储。
计数器界面设置步长设置界面中可访问和操作数据
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

  • github search 搜索

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

未搜索搜索中搜索成功
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

  • 类库测试案例

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

我的界面功能案例页调试测试页
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

  • 秘钥管理综合需求

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

  • 秘钥生成器的操作。
  • 秘钥列表的增删改查交互与数据异步操作。
  • 列表数据的刷新、加载更多功能。
  • 搜索、搜索历史的维护。
  • 数据库持久化等。
需要提交提交中提交成功
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

删除与修改交互:

删除的 ui 交互删除时 loading 状态修改操作
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

下拉刷新和加载更多

下拉刷新成功下拉刷新失败上拉加载更多
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

搜索和历史记录:

跳转到搜索页搜索功能删除历史
Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架Flutter 小册 | 状态管理已上架

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

Flutter 小册 | 状态管理已上架