Merge 8c75342f74be91d6f9a9922ccf53e8581c0168a5 into 7cd2a723e38cdc95e687bffcf406257d09c995ae

This commit is contained in:
Triple T 2025-04-05 06:13:46 +02:00 committed by GitHub
commit 8be97028e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 177 additions and 0 deletions

View File

@ -424,6 +424,23 @@ For encrypting your OS drive, we typically recommend using the encryption tool y
</details>
### Weather Apps
<div class="grid cards" markdown>
- ![Breezy Weather logo](assets/img/weather/breezy.webp){ .twemoji loading=lazy }
[Breezy Weather](weather.md#breezy-weather)
- ![QuickWeather logo](assets/img/weather/quick.png){ .twemoji loading=lazy }
[QuickWeather](weather.md#quickweather)
- ![Weather Master logo](assets/img/weather/master.svg){ .twemoji loading=lazy }
[Weather Master](weather.md#weather-master)
-![OSSWeather logo](assets/img/weather/oss.png){ .twemoji loading=lazy }
[OSSWeather](weather.md#ossweather)
</div>
[Learn more :material-arrow-right-drop-circle:](weather.md)
#### Cross-platform Tools
<div class="grid cards" markdown>

143
docs/weather.md Normal file
View File

@ -0,0 +1,143 @@
---
title: " Private Weather Apps"
icon: "material/weather-partly-snowy-rainy"
description: "Weather apps often ask for your location and share it with advertisers. Instead, use private open-source weather apps."
cover: weather.jpg
---
<small>Protects against the following threat:</small>
- [:material-server-network: Service Providers](basics/common-threats.md#privacy-from-service-providers){ .pg-teal }
**Weather apps** often ask for your location to provide accurate weather info. Often, they don't let you manually input your location.
When any weather app ask for location, only grant it "Approximate location" and select "Only while using the app". You can temporarily change it to "Always" if you need it for travel. If the app claim you didn't give it location access, the app is lying to you. It could be because of out-of-date knowledge of Android APIs, or because the app wants you to give it precise location access, either because it is easier for them to use this as opposed to Approximate location, or to [sell the data](https://www.theguardian.com/technology/2019/jan/04/weather-channel-app-lawsuit-location-data-selling).
While the steps mentioned above will protect you from most of the tracking, it will not stop non-location tracking. Furthermore, Privacy Guides believes that you shouldn't rely only on yourself to consistently uphold your privacy.
The tools recommended below are fully **private** and are **open-source**. See the criteria section at the end for more.
## Breezy Weather
<div class="admonition recommendation" markdown>
![Breezy Weather logo](assets/img/weather/breezy.webp){ align=right }
Breezy Weather is an Android weather app with a modern and neat interface, similar to Big Tech ones. It is highly customizable, allowing you for example to change icons and choose your preferred weather sources.
The app supports [Android approximate location permission](https://developer.android.com/codelabs/approximate-location), although you might need to wait a bit or try a few times, as it first says "Location not found" when using it.
The app comes in two different flavors, both of which are fully open-source and contain no proprietary components. The standard flavor has all of the 50 weather sources (only some sources will be available in your country), while the FreeNet one only contains sources that are libre and self-hostable, like OpenMeteo.
The app gives severe weather alerts as well as precipations alerts.
[:octicons-home-16: Homepage](https://github.com/breezy-weather/breezy-weather?tab=readme-ov-file#breezy-weather){ .md-button .md-button--primary }
[:octicons-eye-16:](https://github.com/breezy-weather/breezy-weather/blob/main/PRIVACY.md){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://github.com/breezy-weather/breezy-weather/blob/main/README.md){ .card-link title="Documentation" }
[:octicons-code-16:](https://github.com/breezy-weather/breezy-weather){ .card-link title="Source Code" }
[:octicons-heart-16:](https://github.com/breezy-weather/breezy-weather?tab=readme-ov-file#contribute){ .card-link title="Contribute" }
<details class="downloads" markdown>
<summary>Downloads</summary>
- [:simple-android: Github](https://github.com/breezy-weather/breezy-weather/releases)
- [:simple-obtainium: Obtainium](https://github.com/breezy-weather/breezy-weather/blob/main/INSTALL.md#obtainium)
</details>
</div>
## QuickWeather
<div class="admonition recommendation" markdown>
![QuickWeather logo](assets/img/weather/quick.png){ align=right }
QuickWeather is a no-fuss weather app that boasts being "really fast". Looking away from the name, we see a couple of nice features. The app supports the "Approximate location" permission, which is a good middle-ground between privacy and convenience. Furthermore, the app also has a rain radar, allowing you to quickly see whether it will rain where you live.
The app only supports two sources: Open-Meteo and OpenWeatherMap([API key](https://home.openweathermap.org/subscriptions/unauth_subscribe/onecall_30/base) needed.)
The app can give notifications about current weather, but "weather alerts" are only available if you give the app access to *precise* location, something we don't recommend.
[:octicons-home-16: Homepage](https://github.com/TylerWilliamson/QuickWeather){ .md-button .md-button--primary }
[:octicons-eye-16:](https://github.com/TylerWilliamson/QuickWeather/blob/master/PrivacyPolicy.md){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://github.com/TylerWilliamson/QuickWeather/tree/master?tab=readme-ov-file#-quickweather){ .card-link title="Documentation" }
<details class="downloads" markdown>
<summary>Downloads</summary>
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=com.ominous.quickweather)
- [:simple-android: Github](https://github.com/TylerWilliamson/QuickWeather/releases)
</details>
</div>
## Weather Master
<div class="admonition recommendation" markdown>
![Weather Master logo](assets/img/weather/master.svg){ align=right }
Weather Master is a powerful weather app with a lot of information, 15 weather sources and customization.
The app not only informs you about the weather, but also about air pollution, air quality, UV index, pollen level, humidity level, and [more](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-features). The app also has a weather radar.
The app doesn't support Android approximate location permission, but you can easily type where you live and it will remember it.
Unfortunately, the app doesn't support Android's pop-up notifications, so any alerts - including severe weather alerts - will only be displayed in the app.
The app is highly customisable, allowing you not only to select which weather source you want between the 15 proposed, but also what forecasting model you want to use and what map provider you prefer.
[:octicons-home-16: Homepage](https://github.com/PranshulGG/WeatherMaster){ .md-button .md-button--primary }
[:octicons-eye-16:](https://github.com/PranshulGG/WeatherMaster/blob/master/app/src/main/assets/pages/aboutPages/PrivacyPolicy.html){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-weathermaster){ .card-link title="Documentation" }
<details class="downloads" markdown>
<summary>Downloads</summary>
- [:simple-android: Github](https://github.com/PranshulGG/WeatherMaster/releases)
</details>
</div>
## OSSWeather
<div class="admonition recommendation" markdown>
![OSSWeather logo](assets/img/weather/oss.png){ align=right }
OSSWeather is a weather app available on both on iOS and Android. While the interface can be overwhelming at first, it is highly customizable. For example, you can change the number of days, hours, and minutes available for forecasts. It is also designed for pros, with the option to choose between more than 15 forecasting models (with a few variants per model), and even compare 3 models in one chart.
Unfortunately, it only support 3 weather sources and doesn't support iOS or Android's "Approximate location" permission. It also doesn't give severe weather alerts.
[:octicons-home-16: Homepage](https://github.com/Akylas/oss-weather){ .md-button .md-button--primary }
[:octicons-info-16:](https://github.com/Akylas/oss-weather){ .card-link title="Documentation" }
[:octicons-heart-16:](https://github.com/sponsors/farfromrefug){ .card-link title="Contribute" }
<details class="downloads" markdown>
<summary>Downloads</summary>
- [:simple-appstore: App Store](https://apps.apple.com/en/app/oss-weather/id1499117252)
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=com.akylas.weather)
- [:simple-android: Github](https://github.com/Akylas/oss-weather/releases)
</details>
</div>
## Criteria
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
### Minimum Requirements
- Be open-source
- Doesn't require an account or doesn't exclusively use sources that require an account
- Have enough weather sources to cover most countries.
- Allow manual input of location
- Doesn't contain any telemetry
### Best-Case scenario
- Support giving only 'Approximate location' permission instead of potentially risky precise location.
- Allow you to choose between a wide variety of weather sources and forecast models.
- Support for emergency weather alerts

View File

@ -428,6 +428,7 @@ nav:
- "passwords.md"
- "pastebins.md"
- "real-time-communication.md"
- "weather.md"
- !ENV [NAV_HARDWARE, "Hardware"]:
- "mobile-phones.md"
- "security-keys.md"

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,16 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M39.7459 10.5014C45.3691 4.74253 54.6309 4.74253 60.2541 10.5014V10.5014C62.9924 13.3057 66.7598 14.8662 70.679 14.8195V14.8195C78.7273 14.7236 85.2764 21.2727 85.1805 29.321V29.321C85.1338 33.2402 86.6943 37.0076 89.4986 39.7459V39.7459C95.2575 45.3691 95.2575 54.6309 89.4986 60.2541V60.2541C86.6943 62.9924 85.1338 66.7598 85.1805 70.679V70.679C85.2764 78.7273 78.7273 85.2764 70.679 85.1805V85.1805C66.7598 85.1338 62.9924 86.6943 60.2541 89.4986V89.4986C54.6309 95.2575 45.3691 95.2575 39.7459 89.4986V89.4986C37.0076 86.6943 33.2402 85.1338 29.321 85.1805V85.1805C21.2727 85.2764 14.7236 78.7273 14.8195 70.679V70.679C14.8662 66.7598 13.3057 62.9924 10.5014 60.2541V60.2541C4.74253 54.6309 4.74253 45.3691 10.5014 39.7459V39.7459C13.3057 37.0076 14.8662 33.2402 14.8195 29.321V29.321C14.7236 21.2727 21.2727 14.7236 29.321 14.8195V14.8195C33.2402 14.8662 37.0076 13.3057 39.7459 10.5014V10.5014Z" fill="#534600"/>
<path d="M59.3715 32.9329C61.3042 33.0645 63.1237 33.8918 64.4934 35.2617C65.8631 36.6315 66.6901 38.4512 66.8215 40.3839C66.9404 42.1305 67.6282 43.7901 68.7795 45.1089C70.0532 46.5685 70.7551 48.4401 70.7551 50.3774C70.7551 52.3146 70.0532 54.1862 68.7795 55.6459C67.6283 56.965 66.941 58.625 66.8225 60.3719C66.6909 62.3045 65.8636 64.1241 64.4937 65.4937C63.1239 66.8634 61.3042 67.6905 59.3715 67.8219C57.6246 67.9406 55.9646 68.6283 54.6455 69.7799C53.186 71.0538 51.3143 71.7557 49.377 71.7557C47.4397 71.7557 45.5681 71.0538 44.1085 69.7799C42.7896 68.6289 41.13 67.9415 39.3835 67.8229C37.4509 67.6912 35.6313 66.8639 34.2616 65.494C32.892 64.1242 32.0649 62.3045 31.9335 60.3719C31.8148 58.6249 31.1271 56.9649 29.9755 55.6459C28.7018 54.1862 28 52.3146 28 50.3774C28 48.4401 28.7018 46.5685 29.9755 45.1089C31.1265 43.7899 31.8138 42.1303 31.9325 40.3839C32.0642 38.4512 32.8915 36.6316 34.2613 35.262C35.6312 33.8923 37.4508 33.0652 39.3835 32.9339C41.1305 32.8151 42.7904 32.1273 44.1095 30.9759C45.5691 29.7019 47.4407 29 49.378 29C51.3153 29 53.187 29.7019 54.6465 30.9759C55.9655 32.1268 57.625 32.8141 59.3715 32.9329Z" fill="url(#paint0_radial_409_372)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M71.3775 61.7699C71.3775 67.0919 67.1455 71.4429 61.8075 71.7519V71.7699H61.3075C61.2352 71.7707 61.1629 71.7707 61.0905 71.7699H47.8805C47.8305 71.7705 47.7805 71.7705 47.7305 71.7699H47.3755V71.7569C44.0255 71.5379 41.3775 68.7998 41.3775 65.4538C41.3775 61.9658 44.2555 59.1379 47.8055 59.1379C49.0375 59.1379 50.1895 59.4789 51.1675 60.0689C51.9895 55.3569 56.1675 51.7699 61.1995 51.7699C66.8195 51.7699 71.3775 56.2469 71.3775 61.7699Z" fill="url(#paint1_radial_409_372)" fill-opacity="0.95"/>
<defs>
<radialGradient id="paint0_radial_409_372" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(35.7395 36.4599) rotate(54.3177) scale(26.7289 26.7151)">
<stop offset="0.016" stop-color="#FFBB29"/>
<stop offset="0.393" stop-color="#FCB224"/>
<stop offset="0.967" stop-color="#E47100"/>
</radialGradient>
<radialGradient id="paint1_radial_409_372" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(71.3775 79.2699) rotate(-132.879) scale(28.6575 68.8231)">
<stop stop-color="#B9B4AE"/>
<stop offset="1" stop-color="white"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB