DE EN

Privacy Policy

This privacy policy explains which personal data the app "Повітряна тривога" (Air Raid Alert) - internally "Tryvoha" - for iOS and Android processes. It applies to the app itself only. Where the two platforms differ, this is stated. In case of doubt, the German version prevails.

In short: the app has no account, no tracking and no analytics SDKs. Your location is processed on the device only; the app never transmits it (for the role of Google Play services on Android, see below). The app connects to the internet for three things: to load the current air raid alerts from our backend, to store your device's anonymous push token there if you allow notifications, and to send a technical error report to Sentry when it crashes (can be switched off). All of this is described in detail below.

Controller

The controller within the meaning of the General Data Protection Regulation (GDPR) is the natural person who publishes "Повітряна тривога" as an individual developer:

  • Name: B. Neuhaus
  • Address: Allerstraße 26, 12049 Berlin, Germany
  • E-mail: tryvoha@borisniehaus.de

Full contact details are also in the imprint (German).

Data protection officer

The app is published by a single person as an individual developer. A data protection officer is therefore not legally required and none has been appointed.

No account, no usage data

The app requires no registration. There is no user account, no advertising ID and no analytics or tracking service. We do not learn whether, when or how you use the app. The only exception are technical crash reports (see below), which you can switch off.

What the app stores locally on your device: the loaded air raid alerts of the last 30 days (as a cache so the map shows something offline), your settings (vibration, notifications, push radius, crash reports, whether the intro has been shown) and the time of the last successful data update. None of this contains personal data; all of it is deleted when you uninstall the app.

Location - on the device only

The app requests the Location "While Using the App" permission (on Android the permissions for approximate and precise location, likewise only while the app is in use). It needs your location to transfer the air raid alerts to scale onto your surroundings: for every alert, distance and bearing from Kyiv are calculated and plotted from your location. This calculation happens entirely on the device. Your location is not transmitted to our backend or to any other server and is not stored persistently - it is held in memory only while the app is running.

On Android the app obtains a single location fix via Google Play services (Fused Location Provider). Depending on your device settings (e.g. "Google Location Accuracy"), Google Play services may itself process location data in the process - this happens under Google's privacy policy, and the app has no influence on it. Here, too, the projection is calculated entirely on the device.

Without location access the geographic map of Ukraine keeps working; only the map transferred onto you stays empty. You can revoke the permission at any time in the iOS or Android settings.

The legal basis is your consent, given via the iOS or Android permission dialog (Art. 6(1)(a) GDPR).

Loading the air raid alerts (Supabase)

The alert data lives in a database at our backend provider Supabase (Supabase, Inc.). A server job fetches it every minute from the API of the volunteer project alerts.in.ua; the app itself never talks to alerts.in.ua. On launch and on every refresh the app loads the new alerts over an encrypted connection (HTTPS) and keeps a persistent connection (WebSocket, "Realtime") open to watch for new alerts while it is in the foreground.

The app transmits no information about you in doing so - no location, no device identifier, no account. Technically, Supabase receives your IP address and a user agent (app name and version, iOS or Android version) with every request; this is unavoidable for any internet connection. The key embedded in the app only allows reading the public alerts table.

Supabase processes this data on our behalf under a data processing agreement (Data Processing Addendum as part of its terms of service); for any transfers to third countries the EU Commission's standard contractual clauses apply. Details: Supabase privacy policy. The legal basis is the provision of the function you requested (Art. 6(1)(b) GDPR).

Push notifications (Apple APNs, Google Firebase Cloud Messaging and Supabase)

On iOS the app asks on first launch whether it may send you notifications. If you agree, Apple issues a push token for your device - a random device identifier that is only good for delivering notifications and allows no inference about your person, your Apple ID or your location.

On Android push notifications are delivered via Firebase Cloud Messaging (FCM), a service of Google (Google Ireland Limited or Google LLC). From Android 13 on, the app asks via the Android permission dialog whether it may send you notifications; on older Android versions notifications are allowed by default and can be switched off in the app or in the Android settings. With this permission, FCM issues a registration token for the app installation, based on a Firebase installation ID. Google Analytics or Firebase Analytics is not included.

On both platforms the app stores this token in our Supabase database together with:

  • the platform ("ios" or "android"),
  • the app language (e.g. "de") so the notification arrives in your language,
  • the push radius you chose (All / 50 / 100 / 200 km) - a plain number, not a location,
  • the time of registration and of the last update.

The radius refers to the map transferred onto you and is evaluated server-side as a distance from Kyiv - the server does not know your location and does not need it for this. When a new alert fires, our server job sends a notification with a generic text ("Air raid alert in Ukraine …") to your device - on iOS via Apple's push service (Apple Push Notification service, Apple Inc.), on Android via Firebase Cloud Messaging (FCM HTTP v1). The notification contains no data about you. The key in the app can only create, update or delete tokens, not read them.

Switching off and deleting: if you turn off "Notifications" in the app or disable notifications in the iOS or Android settings, the app deletes its token on our server (for a change in the system settings, the next time you open the app). If you turn them back on, the app registers again. If you uninstall the app, the token becomes invalid; Apple or FCM (response "UNREGISTERED") reports this on the next delivery attempt and our server job deletes the entry automatically. We will also delete it earlier on request - just send us an e-mail.

The legal basis is your consent via the iOS or Android permission dialog (Art. 6(1)(a) GDPR). On Android versions before 13, which have no such dialog, the registration is based on our legitimate interest in providing the notification feature on offer (Art. 6(1)(f) GDPR); you can object at any time by switching notifications off with the switch in the app or in the Android settings. Processing by Apple is governed by Apple's privacy policy, processing by Google by Google's privacy policy (see also the Firebase privacy information).

Crash reports (Sentry)

The app (on iOS from version 1.0.1 on) sends a technical error report when it crashes, freezes (on Android, "ANR") or hits an unexpected error. On Android this is done via the Sentry Android SDK; each platform has its own Sentry project with the same settings. This is active after installation. You can switch it off at any time in the app's info section with the Crash reports switch. Switching it off takes effect immediately - the Sentry SDK is shut down and opens no further connections. Normal connectivity problems (offline, dead spots) are not reported.

Only technical information is sent: the error message and call stack (stack trace), the location in the program code, app and build version, operating system version (iOS or Android), device model, language setting and time zone, plus a pseudonymous installation ID that the Sentry SDK assigns per device. For a share of sessions, performance measurements are added (e.g. app start time, duration of requests to our backend). Not sent: your location, your push token, screenshots or any information about you as a person. No usage behaviour is recorded and no user profile is built.

About the IP address: the app does not send it. When the report is delivered, the Sentry server still sees it for technical reasons - the app cannot prevent that. For both projects (iOS and Android) the option "Prevent Storing of IP Addresses" is enabled, so the address is not stored. A coarse location derived from it (country and city) remains stored with the event; this is a server feature of Sentry and cannot be switched off.

The provider is Functional Software, Inc. ("Sentry"), San Francisco, California, USA. Reports go to the service's EU region (ingest.de.sentry.io) and are stored in data centres within the European Union. This is based on a data processing agreement (Data Processing Addendum as part of the terms of service); any transfers to the USA are covered by the European Commission's standard contractual clauses. Reports are deleted automatically according to Sentry's retention periods. Details: Sentry's privacy policy.

The legal basis is our legitimate interest in detecting errors and keeping the app stable (Art. 6(1)(f) GDPR). You can object at any time by turning the switch off (Art. 21 GDPR).

Maps and geocoding (Apple MapKit or Google Maps)

On iOS both maps are rendered with Apple's MapKit. For this, your device loads the map tiles of the currently visible section from Apple - for the map transferred onto you, that is a section around your location. Apple technically receives your IP address and the requested map section; we receive none of it. According to Apple, it uses rotating identifiers for this that are not linked to your Apple ID.

If an alert exceptionally arrives from the backend without coordinates, the app has the Ukrainian area name (e.g. "Харківська область") converted into coordinates by Apple's geocoding service. Only this area name is transmitted - never your location.

On Android both maps are rendered with the Google Maps SDK for Android (Google LLC). Your device loads the map tiles of the currently visible section from Google - for the map transferred onto you, that is a section around your location. Google receives your IP address, the requested map section and technical information about the device; in addition, the SDK may send usage and diagnostic data to Google under Google's terms. We receive none of it. The blue location dot is drawn by the SDK on the device.

If an alert arrives without coordinates on Android, the app converts the Ukrainian area name via Android's Geocoder, which on most devices is provided by Google Play services. Here, too, only the area name is transmitted - never your location.

The legal basis is the provision of the map function (Art. 6(1)(b) GDPR). Google processes the technical usage and diagnostic data that the Google Maps SDK sends to Google under its own responsibility to improve its services. Google LLC is certified under the EU-US Data Privacy Framework; this also applies to Firebase Cloud Messaging and Google Play services. Details in Apple's privacy policy or Google's privacy policy.

Content and links in the info section

The app's info section shows (on iOS as on Android) preview images under "More apps" that are loaded from our web server (borisniehaus.de); our web host technically receives your IP address in the process. The info section also contains links to external websites (alerts.in.ua, borisniehaus.de). They only open, in your browser, when you tap them; from then on the respective provider's privacy policy applies.

Permissions

The app requests exactly two system permissions: Location (while using the app) for the map transferred onto you and Notifications for push notifications (on Android via dialog only from Android 13 on, see above). Both are announced in the intro, both are voluntary, both can be revoked at any time in the iOS or Android settings. Camera, microphone, contacts, photos or motion data are not requested.

On Android the app additionally declares permissions for which Android shows no dialog: INTERNET (network access), ACCESS_NETWORK_STATE (to tell "Offline" from "Server unreachable") and VIBRATE (vibration). The Firebase Cloud Messaging library also adds WAKE_LOCK and com.google.android.c2dm.permission.RECEIVE to receive push messages.

Retention and deletion

  • On the device: cache and settings remain until you uninstall the app. On Android the app excludes its data from Android backup, so it does not leave the device via a backup either.
  • Push token at Supabase: until Apple or Google reports the token as invalid (after uninstalling) or you request deletion by e-mail.
  • Crash reports at Sentry: according to Sentry's retention periods, then deleted automatically.
  • Air raid alerts: no personal data; the database keeps a rolling 30-day window.

How to have your data deleted: In the app's info section, turn "Notifications" off - the app deletes its push token on our server right away. Turn "Crash reports" off and no further reports are sent. Uninstalling the app deletes all data on the device. To have data that is already stored (push token, crash reports) deleted, write to tryvoha@borisniehaus.de.

Your rights

You have the rights under Art. 15-21 GDPR (access, rectification, erasure, restriction, objection, data portability), the right to withdraw consent at any time (Art. 7(3) GDPR) and the right to lodge a complaint with a supervisory authority (Art. 77 GDPR) - for Berlin that is the Berliner Beauftragte für Datenschutz und Informationsfreiheit. Since we store no data about you other than the push token and pseudonymous crash reports, and neither can be attributed to a person, we can only act on access or erasure requests for a token you tell us. Contact tryvoha@borisniehaus.de.

Apple and Google as distribution platforms

The app is distributed via the Apple App Store (iOS) and Google Play (Android). Obtaining the app through the respective store is subject to Apple's or Google's own data processing (e.g. in the context of your account and the download), is governed by their privacy policy and is outside the controller's sphere of influence.

Cookies and tracking

The app uses no cookies, performs no tracking and embeds no analytics or advertising SDKs. There are no advertising identifiers, no profiling and no cross-device recognition. Included on both platforms are the Supabase client for loading alerts and registering for push, and the Sentry SDK for the optional crash reports. On Android these are added: Firebase Cloud Messaging (push), the Google Maps SDK and the location services of Google Play services (map and location), and an image loader for the preview images in the info section (Coil, loads only from borisniehaus.de).

Changes

If the app's data processing changes - for example through new features - this policy will be updated beforehand. The date below shows the current version.

Last updated

2026-11-05

← Back to the app page