??? Flutter Starter Architecture (MVVM + Hive)

我的 Flutter 应用自定义入门项目。

我一直在寻找一种简单的方式来以一种 可扩展且清晰的方式 来构建 Flutter 应用。因此,我花了一些时间研究如何在可扩展应用中以一种恰当且高效的方式实现 MVVM 架构。这是我研究的第一个成果。我现在已经将其用于两个项目。
这个项目通过 get_itprovider 驱动 MVVM 架构。
这项工作主要受到 Filledstacks 的启发。

? 概述

我创建了一个

  • helpers 文件夹,其中包含项目的所有实用程序,例如常量值、dart 枚举、扩展、主题化和其他通用实用程序。
  • models 文件夹,其中包含所有数据类表示。
  • services 文件夹,其中包含所有与数据存储和获取相关的文件夹,这些文件夹基于本地存储、firebase 或 API。
  • viewmodels 文件夹,其中包含所有与 viewmodels 相关的文件。最简单的说法,我称 viewmodel 为模型、服务和视图之间的桥梁。它们的工作是处理与它们相关的视图的业务逻辑,以便视图部分不会受到与 UI 不相关的内容的影响。
  • views 文件夹,其中存储了应用程序的 UI 部分。应用程序的每个视图/页面/屏幕都放在这里不同的文件夹中。这些文件夹包含视图的基础文件和一个 widgets 文件夹,其中存储了 **仅** 在该视图中使用的 widgets。**全局** widgets 位于 widgets 文件夹中。

我还在这里添加了一个 viewmodels 的基类 here。所有您接下来编写的 viewmodels 都应该继承自 BaseViewModel 类。还有一个 BaseView widget here,可以轻松地混合访问每个类特有的 base viewmodel。

在应用程序的根目录,您会看到 locator.dart 文件,我在其中注册了每个服务和 viewmodel 的实例,以便在整个应用程序中高效地使用它们。您还可以在 AppRouter 类中找到存储应用程序命名路由的 routes.dart 文件。

在此分支中,我添加了一些实用程序来使用 Hive 处理本地存储。

? 未来

我将创建新的分支来添加更多具有各种可扩展架构的基础项目。

? 包含的插件

该存储库包含 provider、firebase、firebase_auth、cloud_firestore、hive 和 get_it 的基础包。

? 作者

Junior Medehou Twitter Follow

Flutter 入门

如果您这是您的第一个 Flutter 项目,这里有一些入门资源

如需获取 Flutter 入门帮助,请参阅我们的
在线文档,其中提供教程,
示例、移动开发指南和完整的 API 参考。

GitHub

查看 Github