天气应用

这是我使用WeatherAPI的应用程序截图 https://openweathermap.org/appid

Screen Shot 2022-08-27 at 9 52 34 AM

我为此应用程序使用了包含2层的干净架构

应用架构

数据层

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

然后,数据被解析(使用Freezed)并使用类型安全的实体类(天气和预报)返回。

表示层

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

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

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

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

支持的功能

1- 当前天气(状况和温度) 2- 5天天气预报 3- 按城市搜索

GitHub

查看 Github