Clixily – 名言应用
本项目使用BLoC和Provider在Flutter中创建。
应用截图
入门
要求
- Flutter SDK (v3.7.8)
- Dart SDK (>=2.18.6 <3.0.0)
- Android Studio (Flamingo 或更新版本)
- XCode 14.1 或更新版本 (仅限Mac用户)
运行以下命令,查看是否需要安装任何依赖来完成设置
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个层 – presentation、domain 和 data
表现层
此层负责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
使用的库和工具
本项目中使用最重要的一些包



