Flutter天气应用示例

一个使用 OpenWeatherMap API 的 Flutter 天气应用示例。

Flutter Weather App Preview

相关教程

支持的功能

  • 当前天气(状况和温度)
  • 5天天气预报

应用架构

该应用由两个主要层组成。

数据层

数据层包含一个用于从 OpenWeatherMap API 获取天气数据的单一天气存储库。

然后,数据会被解析(使用 Freezed)并使用**类型安全**的实体类(WeatherForecast)返回。

有关此内容的更多信息,请阅读本教程

表示层

此层包含所有小部件及其控制器。

小部件不直接与存储库通信。

相反,它们会监视一些扩展了 StateNotifier 类的控制器(使用 Riverpod)。

这允许将上一层的数据映射到 AsyncValue 对象,这些对象可以映射到适当的 UI 状态(数据、加载、错误)。

使用的软件包

关于 OpenStreetMap 天气 API

该应用显示来自以下端点的数据

注意:要使用该 API,您需要注册一个账户并获取您自己的 API 密钥。这可以通过 --dart-define 设置,或者在 lib/src/api/api_keys.dart 中设置。

许可证:MIT

GitHub

查看 Github