Simple News App – Flutter Clean Architecture with BLOC, Freezed, Get_It Package
此存储库包含一个使用Flutter构建的简单新闻应用程序,遵循Clean Architecture原则,并利用了BLOC模式以及Freezed和Get_It包。
描述
Simple News App是一款移动应用程序,可显示从API获取的新闻文章。它演示了Flutter中Clean Architecture的实现,将应用程序划分为具有清晰职责的层。该架构易于测试、维护和扩展。
该应用程序使用BLOC(业务逻辑组件)模式来管理应用程序的状态。BLOC将业务逻辑与UI分离,使代码更具模块化和可测试性。它还利用Freezed包为状态管理和数据模型生成不可变类。Get_It包用于依赖注入,从而更容易管理应用程序不同层之间的依赖关系。
功能
- 显示从API获取的新闻文章列表。
- 带备用和加载占位符的缓存缩略图
屏幕截图

安装
-
克隆仓库
git clone https://github.com/mimamch/news_app_clean_architecture
-
切换到项目目录
cd news_app_clean_architecture -
安装依赖项
flutter pub get
-
运行应用
flutter run
结构
该应用程序遵循Clean Architecture原则,结构如下:
lib/core/:包含整个应用程序使用的核心实用程序features/:app:初始化应用程序并设置依赖项注入。{features_a}:data/:包含负责处理数据获取和缓存的数据层。domain/:定义应用程序的核心业务逻辑和实体。presentation/:包含应用程序的UI层,包括BLOC、视图和组件。
main.dart:应用程序的入口点。
依赖项
该应用程序使用了几个Flutter包
- flutter_bloc:为状态管理实现BLOC模式。
- freezed:为状态管理和数据模型生成不可变类。
- json_annotation:提供JSON序列化的注解。
- json_serializable:根据注解生成JSON序列化代码。
- get_it:提供依赖注入功能。
- dio:处理HTTP请求以获取新闻文章。
- equatable:简化状态管理的相等比较。
有关依赖项的完整列表,请参阅pubspec.yaml文件。
贡献
欢迎为Simple News App贡献!如果您发现任何错误或想提出改进建议,请打开一个问题或提交一个拉取请求。
贡献时,请遵循现有代码风格,并确保在提交任何更改之前所有测试都通过。此外,请确保在必要时更新文档。
许可证
本项目采用MIT许可证。您可以根据需要自由使用和修改代码。