Flutter 启动架构 (MVVM)

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

我一直在寻找一种简单、可扩展且清晰的方式来构建 Flutter 应用程序。因此,我花了一些时间研究如何在可扩展应用程序中正确有效地实现 MVVM 架构。这是我研究的第一个成果。我现在将其用于两个项目。此项目由 get_it 和 provider 提供支持,实现了 MVVM 架构。这项工作主要受到 Filledstacks 的作品启发。

? 概述

我创建了

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

我还添加了一个 viewmodel 的基类 此处。所有后续您将编写的 viewmodel 都应继承自 BaseViewModel 类。还有一个 BaseView widget 此处,可以轻松地将基 viewmodel 与每个类混合访问。

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

? 未来

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

:electric_plug: 内嵌插件

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

:sunglasses: 作者

Junior Medehou Twitter Follow

GitHub

https://github.com/NemesisX1/flutter-starter-architecture