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

这些文章并非关于高级应用架构,而是关于解决特定的设计问题,无论你的应用架构如何,这些问题都能改善你的代码库。话虽如此,这些文章确实假设了代码示例中沿用了前几页中阐述的 MVVM 模式。

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

开发者可以通过在后台任务完全完成之前呈现一个成功的 UI 状态来帮助减轻这种负面感知。例如,轻触“订阅”按钮后,它会立即变为“已订阅”,即使后台调用尚未完全完成……阅读完整文章

大多数 Flutter 应用,无论大小,迟早都需要将数据存储在用户设备上,例如 API 密钥、用户偏好设置或需要离线可用的数据。

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

键值存储通常用于保存简单数据,例如应用配置,并且在此……阅读完整文章

大多数 Flutter 应用,无论大小,迟早可能都需要将数据存储在用户设备上。例如,API 密钥、用户偏好设置或需要离线可用的数据。

在本示例中,你将学习如何在遵循 Flutter 架构设计模式的 Flutter 应用中,使用 SQL 为复杂数据集成持久化存储。

要了解如何存储更简单的键值数据,请查阅 Cookbook 示例:持久化存储架构:键值数据

要阅读本示例,你应该熟悉 SQL 和 SQLite。如果你需要帮助……阅读完整文章

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

有些离线优先应用能够无缝地结合本地和远程数据,而另一些应用则会在使用缓存数据时通知用户。同样地,有些应用会在后台同步数据,而另一些则要求用户明确地进行同步。这一切都取决于应用的需求及其提供的功能,并且……阅读完整文章

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

命令(Command)是一个类,它封装了一个方法,并帮助处理该方法的不同状态,例如运行中、已完成和错误。

视图模型可以使用命令来处理交互和运行操作。此外,它们还可以用于显示……阅读完整文章

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

正如错误处理文档中所述,Dart 的异常是未处理的异常。这意味着抛出异常的方法无需声明它们,调用方法也无需捕获它们。

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

在本指南中,你将了解此限制……阅读完整文章