Flutter-News-App:基于Flutter和News API开发的新闻应用,支持分类筛选、搜索及暗黑模式

Flutter News App with newsapi.org. Developed using the Test Driven Development.

分支3Tags2
文件最后提交记录最后更新时间
5 年前
5 年前
5 年前
5 年前
5 年前
5 年前
6 年前
6 年前
5 年前
4 年前
6 年前
6 年前
5 年前
5 年前

Codemagic构建状态 codecov 风格:Effective Dart 许可:MIT

Flutter新闻应用

Flutter新闻应用

一款使用Flutter框架和News API开发的新闻应用

版本

使用说明

  1. 请打开文件constant_config.dart,并将变量keyNewsApi中的YOUR API KEY替换为您自己的API密钥。
  2. 在开发模式下,我使用的是模拟JSON服务器。因此,数据不是实时的。
  3. 构建变种仅适用于Android。所以,如果您想以开发模式运行,您可以使用以下命令。
flutter run -t lib/main_development.dart --flavor development -d <device_id>

或者在生产模式下。

flutter run --release -t lib/main_production.dart --flavor production -d <device_id>

注意:如果您希望构建并发布此应用至 Play Store,请使用以下命令。

flutter build appbundle --release --flavor production -t lib/main_production.dart
  1. 对于 iOS,您可以使用此命令以开发模式运行。
flutter run -t lib/main_development.dart -d <device_id>

或在生产模式下。

flutter run --release -t lib/main_production.dart -d <device_id>

对于 iOS 平台,构建和发布无需额外配置,只需按照 文档 中的说明操作即可。

功能

  • 列出每日新闻。
  • 按类别筛选每日新闻。
  • 使用下拉刷新样式刷新新闻列表。
  • 跳转至新闻详情网页。
  • 搜索新闻。
  • 支持深色模式。

技术栈

  1. Dio
    一个强大的 Dart Http 客户端,支持拦截器、FormData、请求取消、文件下载、超时等功能。
  2. Flutter BLoC
    简化 BLoC 设计模式实现的 Flutter 组件。
  3. Intl
    提供国际化和本地化功能的包,包括消息翻译、复数和性别处理、日期/数字格式化和解析、双向文本等。
  4. Url Launcher
    用于在移动平台上启动 URL 的 Flutter 插件,支持 iOS 和 Android。
  5. Cached Network Image
    用于加载和缓存网络图片的 Flutter 库,支持占位符和错误组件。
  6. Get It
    一个简单的直接服务定位器,允许解耦接口与具体实现,并在应用的任何地方访问具体实现。
  7. Dartz
    Dart 中的函数式编程工具,使用高效的不可变数据结构、单子、透镜等 FP 工具净化 Dart 代码。
  8. Equatable
    一个抽象类,帮助实现相等性而不需要显式重写 ==hashCode
  9. Data Connection Checker
    一个纯 Dart 库,通过向指定地址列表打开套接字来检查互联网连接,每个地址都有独立的端口和超时设置。
  10. Flutter ScreenUtil
    一个用于适配屏幕和字体大小的 Flutter 插件。
  11. Pedantic
    如何从 Dart 静态分析中获得最大价值。
  12. Device Info
    提供设备详细信息的 Flutter 插件(如制造商、型号等)。
  13. Flutter SVG
    一个用于 Flutter 的 SVG 渲染和组件库,支持绘制和显示 Scalable Vector Graphics 1.1 文件。
  14. Build Runner
    用于编写运行构建器的二进制文件的工具。
  15. Mockito
    受 Mockito 启发的模拟框架。
  16. Bloc Test
    一个简化 BLoC 测试的库。
  17. JSON Serializable
    通过注解 Dart 类自动生成 JSON 转换代码。
  18. Hive
    一个轻量级且速度极快的纯 Dart 键值数据库。