Skip to content

Repository files navigation

晴空天气图标

晴空天气

一款简洁、原生、注重隐私的 Windows 天气应用。

Windows 10 1809+ · WinUI 3 · .NET 10 · 版本 0.0.1

隐私声明 · 第三方许可 · MIT License · 问题反馈

简介

晴空天气(ClearSky Weather)是使用 WinUI 3 构建的原生 Windows 桌面天气应用。它提供当前天气、逐小时预报、七日预报、空气质量和天气预警,并支持多城市、设备定位、离线缓存和自定义背景。

应用默认使用 Open-Meteo,无需注册账号或配置 API Key;也可以切换到和风天气,以使用其天气数据和预警能力。

Note

项目目前处于早期预览阶段。界面、配置格式和数据模型仍可能在后续版本中调整。

功能

  • 当前天气、体感温度、湿度、风力、降水、气压和能见度
  • 24 小时逐小时预报和 7 天预报
  • 实时空气质量、主要污染物和健康建议
  • 天气预警详情及 Windows 通知(取决于所选数据服务)
  • 城市搜索、已保存城市和城市实时天气
  • 通过 Windows 位置权限使用设备当前位置
  • 根据天气自动切换背景,也可以选择并裁切自定义图片
  • 摄氏度与华氏度切换
  • 跟随系统、浅色和深色主题
  • 简体中文、English 和跟随系统语言
  • SQLite 本地缓存;网络不可用时优先展示已有数据
  • 窄窗口、高 DPI 和 Windows 文字缩放适配

获取与运行

Microsoft Store 版本尚未公开发布。目前请从源码构建应用。

环境要求

  • Windows 10 版本 1809(Build 17763)或更高版本,推荐 Windows 11
  • .NET SDK 10.0.100 或兼容的更新功能版本
  • Visual Studio,并安装 WinUI/Windows 应用开发工作负载;也可以使用命令行完成还原、构建和测试
  • 调试和旁加载时建议开启 Windows 开发者模式

克隆与构建

git clone https://github.com/miraged3/ClearSkyWeather.git
cd ClearSkyWeather

dotnet restore ClearSky.Weather.sln
dotnet build ClearSky.Weather.sln -c Debug -p:Platform=x64
dotnet test tests/ClearSky.Weather.Tests/ClearSky.Weather.Tests.csproj -c Debug

使用 Visual Studio 打开 ClearSky.Weather.sln,选择 x64ARM64 后即可启动调试。

生成 MSIX

dotnet build src/ClearSky.Weather/ClearSky.Weather.csproj `
  -c Release `
  -p:Platform=x64 `
  -p:GenerateAppxPackageOnBuild=true

生成的测试包位于 src/ClearSky.Weather/AppPackages/。仓库默认不包含发布证书,正式分发前需要使用自己的签名配置。

天气服务

Open-Meteo(默认)

Open-Meteo 无需 API Key,开箱即用,提供城市搜索、当前天气、逐小时预报、每日预报和空气质量。

Open-Meteo 公共接口的许可、署名和调用限制以其官方条款为准。商业分发前请确认所使用端点和套餐满足你的使用场景。

和风天气(可选)

在应用的“设置 → 数据服务”中选择和风天气,并填写账户专属 API Host 和 API Key。API Key 保存在 Windows 凭据保险箱中,不会写入 appsettings.json

位置与反向地理编码

应用仅在用户主动选择“使用当前位置”后请求 Windows 位置权限,不会持续跟踪设备。坐标会发送给天气服务,并通过 BigDataCloud 解析为可读地名。详细的数据处理方式见隐私声明

项目结构

ClearSky.Weather.sln
├─ src/
│  ├─ ClearSky.Weather/                WinUI 3 界面、ViewModel、Windows 服务与 MSIX
│  ├─ ClearSky.Weather.Core/           领域模型、格式化逻辑和供应商抽象
│  └─ ClearSky.Weather.Infrastructure/ 数据服务适配器、地理编码和 SQLite 持久化
├─ tests/
│  └─ ClearSky.Weather.Tests/          单元测试与适配器契约测试
├─ docs/                               隐私、第三方声明和技术文档
└─ eng/                                品牌素材生成工具

核心层不依赖具体天气供应商。Open-Meteo、和风天气、缓存和地理编码均通过接口接入,界面只使用统一的天气模型。

开发约定

  • 启用 Nullable 引用类型和 .NET 推荐代码分析规则
  • 编译警告视为错误
  • 新功能或缺陷修复应包含相应测试
  • UI 文案需要同步更新 zh-CNen-US 资源
  • 不得在源码、日志、测试数据或 Issue 中提交 API Key、精确位置等敏感信息

参与贡献

欢迎提交 Issue 和 Pull Request。

  1. 在 Issue 中说明问题、使用场景或改动建议。
  2. Fork 仓库并从 main 创建功能分支。
  3. 完成修改并运行构建与测试。
  4. 提交 Pull Request,说明改动内容、验证方式以及涉及的界面变化。

报告问题时,请提供 Windows 版本、应用版本和复现步骤;请勿公开上传 API Key、凭据或精确位置。

数据来源与第三方组件

完整版权及许可信息见第三方许可与声明。天气和预警信息仅供参考;涉及人身与财产安全时,请以当地官方机构发布的信息为准。

许可证

本项目采用 MIT License 开源。

第三方组件、天气图标和动画素材不因本项目采用 MIT License 而改变其原有许可,具体信息见第三方许可与声明

About

A clean, native Windows weather app.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages