Flutter 新闻应用

Flutter News App

概述

这款 Flutter 新闻应用是一个旨在展示 Flutter 开发最佳实践的项目,集成了 Clean Architecture、BLoC 状态管理、Get_it 依赖注入、使用 Floor 进行本地数据库存储以及 Retrofit 进行网络调用。该应用从公共 API 获取实时新闻数据,为用户提供无缝且响应迅速的新闻浏览体验。

功能

  • Clean Architecture:关注点分离,以提高可维护性和可扩展性。
  • BLoC 状态管理:高效地管理和更新 UI 状态。
  • Firebase:使用 Firebase Auth 和 Firebase Storage 对用户进行身份验证。
  • Google 登录:用户可以使用他们的 Google 账号登录。
  • 依赖注入:利用 Get_it 进行依赖注入,以增强代码组织。
  • 本地数据库:采用 Floor 进行本地数据存储,确保离线访问之前获取的新闻。
  • 网络调用:使用 Retrofit 进行高效且结构化的 API 调用。
  • 深度链接:深度链接是一种允许直接导航到移动应用程序内特定内容的机制,通过 URL 或 URI 实现对特定屏幕或操作的无缝访问。

设置

  1. 克隆仓库

    https://github.com/manirahmanzadeh/news.git
    
  2. 安装依赖项

    flutter pub get
    
  3. 运行应用

    flutter run
    

配置

要成功运行 Flutter 新闻应用,您需要配置您的 API 密钥。请按照以下步骤进行设置:

1. 获取 API 密钥

从您偏好的新闻 API 提供商处获取 API 密钥。

2. 更新 配置文件

依赖项

Flutter 新闻应用使用了以下依赖项:

Bloc

Bloc 是一个可预测的状态管理库,它有助于以清晰有序的方式管理应用程序的状态。

Firebase Core

Firebase Core 是一个 Flutter 插件,用于使用 Firebase Core API,该 API 可以连接到多个 Firebase 应用。

Firebase 认证

Firebase Auth 是一个 Flutter 插件,用于使用 Firebase 身份验证 API。

Firebase Storage

Firebase Storage 是一个 Flutter 插件,用于使用 Firebase Cloud Storage API。

Get_it

Get_it 是一个简单的服务定位器,用于依赖注入。它增强了代码组织,并提供了一种清晰的方式来管理依赖项。

Floor

Floor 是一个 Flutter 和 Dart 的持久化库,它封装了 SQLite。它有助于本地数据存储,确保离线访问之前获取的新闻。

Retrofit

Retrofit 是一个 Dart 的类型安全 HTTP 客户端。它支持结构化且高效的 API 调用。

Google 登录

Google Sign In 为将 Google 登录功能集成到 Flutter 应用中提供了便捷的解决方案。

图片选择器

Image Picker 促进从设备的图库或相机中无缝选择图片,增强用户与应用中图片相关功能的交互。

Uni Links

Uni Links 支持深度链接和 URI 处理,允许无缝集成通用链接和自定义 URI 方案,用于应用内的导航和数据共享。

贡献

欢迎为 Flutter 新闻应用做出贡献!

GitHub

查看 Github