每日新闻应用

创建者: A.F.M. MOHIMENUL JOAA

功能描述

  1. 获取和显示:从 NewsAPI 获取新闻文章。在列表中显示文章标题、图片和简短描述。
  2. 详情视图:点击列表项时,导航到新屏幕,显示文章的完整内容,包括图片、标题、内容和发布日期。
  3. 状态管理:实现您选择的状态管理解决方案(RiverPod 或 Bloc)来管理和存储获取的文章。
  4. 错误处理:实现网络故障或任何其他可能异常的错误处理。
  5. 下拉刷新:实现下拉刷新功能,当用户在列表中向下拖动时获取最新文章。
  6. 缓存:缓存获取的文章,以提供离线阅读体验。
  7. 搜索功能:允许用户通过关键字搜索特定文章。
  8. 主题和 UI/UX:通过超越基本小部件的样式展示您的设计和主题技能。

支持平台

Android, iOS, Web

特点

  • Material Design
  • 使用 Business Logic Component 实现的干净架构
  • 使用 hive 进行本地数据缓存
  • 使用 Cached Network Image 进行网络图片缓存
  • 使用 provider 实现的 Inherited Widget
  • 应用路由
  • 存储库模式
  • 使用 Flare Flutter 实现的 Flare 动画
  • 恰当的错误处理
  • 恰当的权限处理
  • 下拉刷新
  • 领域驱动设计
  • 按国家、类别和查询进行搜索
  • 使用 hive 缓存搜索结果
  • 使用自定义字体
  • 浅色和深色主题实现
  • 漂亮的现代 UI,带有动画和侧边栏
  • 如果图片 URL 为 null 或为空则显示闪烁效果 shimmer

截图

仪表板/主页

screen shot 1 screen shot 2 screen shot 1 screen shot 2

详情页

screen shot 1 screen shot 2 screen shot 1 screen shot 2

侧边栏

screen shot 1 screen shot 2 screen shot 1 screen shot 2

关于页面

screen shot 1 screen shot 2 screen shot 1 screen shot 2

无网络仪表板

screen shot 1 screen shot 2 screen shot 1 screen shot 2

构建要求

SDK 版本
Dart 3.1.3
Flutter 3.13.6

依赖

开发依赖项
cupertino_icons
flutter_svg
flutter_zoom_drawer
logging
freezed_annotation
json_annotation
bloc
flutter_bloc
provider
flare_flutter
dio
hive
intl
dartz
get_it
cached_network_image
flutter_cache_manager
path_provider
shimmer

许可证

GNU AFFERO 通用公共许可证

GitHub

查看 Github