基础 Flutter (Android + iOS) 应用 (Dart + Dio) – 天气应用

这是一个非常适合初学者的 Flutter 项目。一个简单的天气预报应用程序,使用了 Open Weather Map API。我使用了 `StatefulWidget` 进行状态管理。对于网络调用,我使用了流行的 Flutter 包 `Dio`。

先决条件

对 Dart 编程语言有基本了解。需要熟悉 REST API 和 HTTP 协议的网络调用。

项目描述

我们将使用 Flutter 开发一个天气预报 Android 应用程序。UI 将与上面的截图类似。有一个带有城市名称的 `DropdownButton`。选择一个城市后,用户需要点击 `View Weather` 按钮。然后应用程序将向 Open Weather Web API 发送请求,并在 UI 中显示天气信息。

Open Weather API

我们将使用 Open Weather Map API 来收集天气信息。要获取城市的真实天气信息,您需要注册并获取您自己的 `APP ID`。否则,您可以在不创建帐户的情况下使用他们的示例 `BASE URL` 和示例 `APP ID` 来测试 API。

项目设置

克隆项目并使用 Android Studio 打开它。然后在 `assets` 文件夹中创建一个名为 `config.json` 的文件。在父 JSON 对象中添加 `baseUrl` 和 `appId` JSON 字段。

无需创建帐户即可使用示例 API

在您的 `config.json` 文件中添加以下行。然后运行项目。您将从 Open Weather API 获得模拟或静态 API 响应。

{
  "baseUrl": "https://samples.openweathermap.org/data/2.5",
  "appId": "b6907d289e10d714a6e88b30761fae22"
}

注册并激活您的 APP ID 后使用真实的 APP ID

在网站上注册后,从他们的 API Keys 页面 收集您自己的 `APP ID`。然后像下面这样在 `config.json` 文件中添加您的 `APP ID`。

{
  "baseUrl": "http://api.openweathermap.org/data/2.5",
  "appId": "<YOUR OWN APP ID>"
}

BASE URL 和 APP ID 将从 `main.dart` 文件中获取,并存储在我们的本地配置文件中。

注意: Open Weather API 的免费版本每分钟最多允许 60 次 API 调用。

运行项目

运行 `flutter pub get` 来同步包。然后将应用程序运行到您的真实设备或模拟器上。

免责声明

这是我在 Flutter 中的第一个项目。因此,有很多可以改进的地方。此项目不保证最佳实践和 Flutter 约定。请不要将此项目用作参考或作为您其他项目的样板。为了简单起见,我避免使用 Bloc、GetX 等。下次我会为它们创建不同的存储库。欢迎随时创建问题以进行改进。谢谢。

GitHub

查看 Github