跳到主内容

架构设计模式

一系列关于构建 Flutter 应用时常用设计模式的文章。

如果你已经阅读了架构指南页面,或者你对 Flutter 和 MVVM 模式比较熟悉,那么以下文章非常适合你。

这些文章讨论的不是高层级的应用架构,而是关于解决特定的设计问题,从而改善应用的现有代码库,无论你采用何种架构。话虽如此,文章中的代码示例确实假设你遵循了前几页中介绍的 MVVM 模式。

在构建用户体验时,性能的感知往往与代码的实际性能同等重要。通常,用户不喜欢为了查看结果而等待操作完成,任何超过几毫秒的延迟从用户的角度来看都可能被认为是“缓慢”或“无响应”的。

开发者可以通过在后台任务完全完成之前展示一个成功的 UI 状态,来帮助缓解这种负面感受。例如,点击“订阅”按钮后,即使后台请求尚未返回,按钮也会立即变为“已订阅”,即使后台调用……

阅读全文

大多数 Flutter 应用,无论规模大小,在某些时候都需要在用户设备上存储数据,例如 API 密钥、用户偏好设置或需要离线使用的数据。

在本指南中,你将学习如何为使用推荐的 Flutter 架构设计的应用集成键值数据的持久化存储。如果你完全不熟悉如何将数据存储到磁盘,可以阅读 将键值数据存储在磁盘上 的指南。

键值存储通常用于保存简单数据(如应用配置),在本指南中你将……

阅读全文

大多数 Flutter 应用,无论规模大小,在某些时候都可能需要在用户设备上存储数据。例如,API 密钥、用户偏好设置或需要离线使用的数据。

在本指南中,你将学习如何按照 Flutter 架构设计模式,在应用中使用 SQL 集成复杂数据的持久化存储。

要了解如何存储简单的键值数据,请查看 Cookbook 指南:持久化存储架构:键值数据

阅读本指南前,你应该熟悉 SQL 和 SQLite。如果需要帮助,你……

阅读全文

离线优先应用是指在断开互联网连接时,仍能提供大部分或全部功能的应用程序。离线优先应用通常依赖已存储的数据,为用户提供对原本只能在线访问的数据的临时访问权限。

一些离线优先应用无缝结合了本地和远程数据,而另一些应用则会在使用缓存数据时通知用户。同样,一些应用在后台同步数据,而另一些则需要用户明确触发同步。这完全取决于应用的需求及其提供的功能,它是……

阅读全文

模型-视图-视图模型 (MVVM) 是一种将应用功能分为三个部分的设计模式:模型 (Model)、视图模型 (ViewModel) 和视图 (View)。视图和视图模型构成了应用的 UI 层。仓库 (Repositories) 和服务 (Services) 代表了应用的数据层,即 MVVM 中的模型层。

命令是一个封装了方法的类,有助于处理该方法在运行、完成和报错等不同阶段的状态。

视图模型可以使用命令来处理交互和运行操作。你还可以利用它们来显示不同的 UI 状态,……

阅读全文

Dart 提供了一种内置的错误处理机制,能够抛出和捕获异常。

正如 错误处理文档 中所提到的,Dart 的异常是未受检异常。这意味着抛出异常的方法无需声明它们,调用方也不强制要求捕获它们。

这可能导致异常未被妥善处理的情况。在大型项目中,开发者可能会忘记捕获异常,并且不同的应用层和组件可能会抛出未记录的异常。这可能导致错误和崩溃。

在本指南中,你将了解这一局限性,以及……

阅读全文