Clixily – 名言应用

本项目使用BLoC和Provider在Flutter中创建。

应用截图

入门

要求

运行以下命令,查看是否需要安装任何依赖来完成设置

 flutter doctor

如何使用

步骤 1

使用下面的链接下载或克隆此仓库

https://github.com/dperczuk/clixily

步骤 2

转到项目根目录,在控制台中执行以下命令以获取所需的依赖项

flutter pub get

步骤 3

本项目使用freezed库进行代码生成,请执行以下命令生成文件

flutter packages pub run build_runner build --delete-conflicting-outputs

或使用 watch 命令以自动同步源代码

flutter packages pub run build_runner watch

更多关于 build_runner 的信息

i10n 支持

有关使用i10n的更多信息,请参阅 文档

架构

本项目基于Clean Architecture和 BLoC模式 的组合。

应用中的每个“功能”将被划分为3个层 – presentationdomaindata

表现层

此层负责UI以及所有与用户交互相关的部分。在大多数情况下,它将分为3个包

  • cubit – 包含此功能中使用的所有cubit和状态,负责控制小部件的当前状态
  • components – 此功能中使用的所有较小的小部件,可以轻松地在许多地方重复使用
  • pages – 定义所有高级脚手架,通常包含带有标题和导航按钮的AppBar

Domain: 此层仅包含核心业务逻辑(use cases)和业务对象(entities)。它应该完全独立于其他任何层。

Domain层将分为3个包

  • entities – 特定功能中使用的所有业务对象和持有者,
  • repositories – 应仅包含存储库的抽象定义,
  • usecases – 包含封装应用程序特定用例所有业务逻辑的类。

数据层

数据层由存储库实现(合约来自domain层)和数据源组成。

此层包含2个包

  • models – API模型的Dart表示,带有适当的序列化/反序列化方法
  • dataproviders – 数据提供程序的责任是提供原始数据。数据提供程序应通用且多功能。
  • repositories – 是一个包装一个或多个数据提供程序的包装器,应涵盖domain层中定义的所有存储库

文件夹结构

这是文件夹结构,使用Flutter实现

lib/
|- app/
    |- app.dart
    |- dependencies.dart
    |- environment_config.dart
    |- router.dart
|- core/
    |- data/
    |- dependency_injection/
    |- error/
    |- extensions/
    |- theme/
    |- usecases/
|- features/
    |- common/
        |- ...
    |- home/
        |- ...
    |- quotes/
        |- ...
 |- generated/
        |- ...
 |- l10n/
        |- ...
 |- main.dart

使用的库和工具

本项目中使用最重要的一些包

GitHub

查看 Github