cover

Clima ?️

Clima 是一款用户友好的天气应用程序,旨在以最简单的方式为您提供准确且最新的天气信息。通过 Clima,您可以轻松查看您所在位置今日及未来六天的当前温度,从而帮助您相应地规划您的活动。该应用还提供详细的每小时预报,为您提供全天候每三个小时的天气更新。Clima 的突出特点在于其极简和直观的设计,确保用户获得无忧无虑的体验。告别复杂的用户界面和压倒性的数据——Clima 专注于提供必要的天气信息,使其成为寻求简单可靠天气应用的用户的首选。

安装说明: ?

在开始之前,您需要从以下服务获取 API 密钥

  • Google Maps API 密钥

    • 访问 Google Cloud Console
    • 创建一个新项目并启用 Google Maps API。
    • 生成 API 密钥并根据需要限制其使用。
    • 要将地图集成到您的项目中,请遵循 配置
  • OpenWeather API 密钥

设置 API 密钥

  1. 将存储库克隆到您的本地计算机

git clone https://github.com/your-username/your-project.git
cd your-project
  1. 在项目目录中,创建一个名为 .env 的新文件来存储您的 API 密钥

# .env file
GOOGLE_MAPS_API_KEY=your-google-maps-api-key
OPENWEATHER_API_KEY=your-openweather-api-key
  1. 将 .env 文件保存在 Flutter 项目目录的根目录中。

或者

做我做过的,创建一个包含密钥的 Dart 类,然后将其添加到 .gitignore 中,如下所示

class Api {
  static const String key = "your-openweather-api-key";
  static const String googleKey = "your-google-maps-api-key";
}

运行 Flutter 项目

现在您已经设置了 API 密钥,您可以在本地计算机上运行 Flutter 项目。请确保您已安装 Flutter。如果没有,您可以遵循官方 Flutter 安装指南。

  1. 安装项目依赖项
flutter pub get
  1. 运行 Flutter 项目
flutter run

这将启动 Flutter 应用,让您可以在项目中使用 Google Maps 和 OpenWeather 服务。

注意 确保将 .env 文件添加到您的 .gitignore 文件中,以保护您的 API 密钥不被公开到版本控制系统中。这确保了您的 API 密钥的安全性。

功能 ✨

  • 当前天气:查看您当前位置的实时天气状况,包括温度、日期和天气描述。

  • 6 天预报:通过 6 天天气预报规划您接下来的一周。了解即将到来的天气趋势,帮助您做出明智的决策。

  • 每小时更新:访问详细的每小时预报,全天每 3 小时提供天气更新。为不断变化的天气状况做好准备。

  • Google Maps 集成:将 Google Maps 功能无缝集成到应用程序中。在交互式地图上可视化天气数据,允许用户探索不同的位置。

  • 通知:接收每日天气通知,以随时了解重大天气变化。自定义特定天气条件或时间间隔的通知偏好。

  • 用户友好的界面:体验设计的简洁性。Clima 具有直观而极简的界面,确保轻松导航和快速访问天气信息。

  • 响应式设计:在各种设备和屏幕尺寸(包括智能手机和平板电脑)上享受一致的用户体验。

预览 ?

preview.mp4

技术 ?️

  • 最低 SDK 版本 21
  • 编译 SDK 版本 33
  • 字体
    • Manrope
  • 架构
    • Mvvm
  • Dio
    • 一个强大且易于使用的 Flutter 和 Dart HTTP 客户端。
  • 权限处理器
    • Flutter 插件,用于管理 Android 和 iOS 平台上的权限。
  • Geolocator
    • 一个 Flutter 地理位置插件,用于 Android 和 iOS,提供对 GPS 和网络等设备位置服务的便捷访问。
  • Dartz
    • 一个用于 Dart 和 Flutter 的函数式编程库,提供处理不可变数据、错误和函数式编程概念的工具。
  • Flutter Bloc
    • 一个可预测的状态管理库,有助于在 Flutter 应用程序中实现 BLoC 模式。
  • Get It
    • 一个用于 Dart 和 Flutter 项目的简单服务定位器,提供了一种在应用程序中管理和访问对象的便捷方式。
  • Lottie
    • 一个用于显示 Lottie 创建的动画的 Flutter 包,Lottie 是一个用于 Android、iOS 和 Web 的库,可解析 Adobe After Effects 动画。
  • Iconsax
    • 一套高质量且可自定义的 Flutter 项目图标,提供广泛的图标以增强应用的视觉吸引力。
  • Flutter 本地通知
    • 一个用于在 Android 和 iOS 设备上显示本地通知的 Flutter 插件。可用于在应用内安排和管理通知。
  • Path Provider
    • 一个 Dart 库,用于检索文件系统上常用的位置,例如临时目录和特定于应用程序的目录。
  • Equatable
    • 一个 Dart 包,可更方便地比较对象是否相等,增强了基于值的相等性检查的简便性。
  • Flutter SVG
    • 一个用于 Flutter 的 SVG 渲染和 Widget 库,可在 Flutter 应用程序中显示可缩放矢量图形文件。
  • Connectivity Plus
    • 一个用于监控网络连接的 Flutter 插件,提供有关设备网络状态和连接类型的信息。
  • Google Maps Flutter
    • 一个用于将 Google Maps 集成到 Flutter 应用程序中的 Flutter 插件,允许开发者显示带有标记、折线等的交互式地图。

贡献指南 ?

我们非常感谢您对 Clima 的贡献!在开始之前,请花点时间阅读我们的 贡献指南,其中包含有关如何贡献、行为准则和其他重要信息的详细信息。

感谢您为 Clima 做出贡献!?️

GitHub

查看 Github