架构设计模式
一系列关于构建 Flutter 应用时常用设计模式的文章。
如果你已经阅读了架构指南页面,或者你对 Flutter 和 MVVM 模式比较熟悉,那么以下文章非常适合你。
这些文章讨论的不是高层级的应用架构,而是关于解决特定的设计问题,从而改善应用的现有代码库,无论你采用何种架构。话虽如此,文章中的代码示例确实假设你遵循了前几页中介绍的 MVVM 模式。
乐观状态 (Optimistic state)
通过实现乐观状态来改善应用的响应感知度。
在构建用户体验时,性能的感知往往与代码的实际性能同等重要。通常,用户不喜欢为了查看结果而等待操作完成,任何超过几毫秒的延迟从用户的角度来看都可能被认为是“缓慢”或“无响应”的。
开发者可以通过在后台任务完全完成之前展示一个成功的 UI 状态,来帮助缓解这种负面感受。例如,点击“订阅”按钮后,即使后台请求尚未返回,按钮也会立即变为“已订阅”,即使后台调用……
持久化存储架构:键值数据
将应用数据保存到用户的设备内键值存储中。
大多数 Flutter 应用,无论规模大小,在某些时候都需要在用户设备上存储数据,例如 API 密钥、用户偏好设置或需要离线使用的数据。
在本指南中,你将学习如何为使用推荐的 Flutter 架构设计的应用集成键值数据的持久化存储。如果你完全不熟悉如何将数据存储到磁盘,可以阅读 将键值数据存储在磁盘上 的指南。
键值存储通常用于保存简单数据(如应用配置),在本指南中你将……
持久化存储架构:SQL
使用 SQL 将复杂的应用数据保存到用户设备。
大多数 Flutter 应用,无论规模大小,在某些时候都可能需要在用户设备上存储数据。例如,API 密钥、用户偏好设置或需要离线使用的数据。
在本指南中,你将学习如何按照 Flutter 架构设计模式,在应用中使用 SQL 集成复杂数据的持久化存储。
要了解如何存储简单的键值数据,请查看 Cookbook 指南:持久化存储架构:键值数据。
阅读本指南前,你应该熟悉 SQL 和 SQLite。如果需要帮助,你……
离线优先支持
为应用中的某个功能实现离线优先支持。
离线优先应用是指在断开互联网连接时,仍能提供大部分或全部功能的应用程序。离线优先应用通常依赖已存储的数据,为用户提供对原本只能在线访问的数据的临时访问权限。
一些离线优先应用无缝结合了本地和远程数据,而另一些应用则会在使用缓存数据时通知用户。同样,一些应用在后台同步数据,而另一些则需要用户明确触发同步。这完全取决于应用的需求及其提供的功能,它是……
命令模式 (Command pattern)
通过实现 Command 类来简化视图模型 (ViewModel) 逻辑。
模型-视图-视图模型 (MVVM) 是一种将应用功能分为三个部分的设计模式:模型 (Model)、视图模型 (ViewModel) 和视图 (View)。视图和视图模型构成了应用的 UI 层。仓库 (Repositories) 和服务 (Services) 代表了应用的数据层,即 MVVM 中的模型层。
命令是一个封装了方法的类,有助于处理该方法在运行、完成和报错等不同阶段的状态。
视图模型可以使用命令来处理交互和运行操作。你还可以利用它们来显示不同的 UI 状态,……