The Android App Blitzortung Lightning Monitor built from these sources visualizes lightning data provided by the blitzortung.org network.
Please have a look at the documentation for more information on usage.
The app defines three build variants:
| Variant | Minified (R8) | Debuggable | Signing | Use for |
|---|---|---|---|---|
debug |
no | yes | debug key | daily development, debugging |
perf |
yes | no | debug key | performance-critical testing, profiling |
release |
yes | no | release key | publishing |
debug builds run without R8 optimization and are installed without ahead-of-time compilation, so heavy map rendering (especially zooming with global data) feels noticeably slower than production.
The perf variant exists to close that gap: it inherits the release build type (R8 minification, resource shrinking, optimization) but is signed with the debug key so it can be installed over the debug build. It is intentionally not debuggable, which is what allows it to match release performance.
External baseline profiles from library dependencies are excluded on perf to avoid INSTALL_BASELINE_PROFILE_FAILED on devices with a work profile. They only cover library code, so they do not affect the app's map rendering performance.
To use it:
- In Android Studio select
perfunder Build > Select Build Variant and Run, or - From the command line:
./gradlew installPerfBecause perf and debug share the same application ID and signing key, they overwrite each other. The release variant uses a separate key and must be uninstalled first.
- Czech
- Dutch
- English
- French
- German
- Hungarian
- Italian
- Polish
- Slovak
- Russian
- Spanish
We are still looking forward to volunteers preparing a translation for the following languages:
- yours?
Translations to other languages are welcome as well. Please contact us via blitzortung at tryb.de
This app can use device location in order to show the users location on the map and for generating warning view and alerts for lightning activity nearby.
The lightning warning feature can also be used without device location permissions as the location can also be set manually (via preferences but also via long pressing the desired position on the map). You will still be able to use the warning feature without allowing location permissions.
In order to have a more efficient data transfer with high resolution lightning data the app only fetches the last 10 minutes of activity in an area of 5° x 5° rounded to five degrees.
Although this data is derived from the devices location or the map area currently visible it can not be used to track users. Here is why:
- Granularity: A 5x5 degree area is extremely large.
- Latitude: 5 degrees covers approximately 555 km (345 miles).
- Longitude: At the equator, 5 degrees is also ~555 km. At 50° latitude (e.g., Central Europe/Canada), it is still ~355 km wide.
- This resolution is sufficient to identify a broad region (e.g., "Central Europe" or "US West Coast") but is completely insufficient to pinpoint a city, let alone a specific person or address.
- Anonymization: The calculation
(coordinate / scale).toInt()effectively quantizes the location. All users within that massive 5x5 degree square report the exact same grid index (e.g., x=2, y=10). It is impossible to distinguish between two users within that same ~300,000 km² area based solely on these coordinates. On top of that, there is no data provided which would allow to link subsequent requests coming from the same app.
Conclusion: The coordinates generated by LocalData.update() are too coarse for individual tracking. They serve only to download lightning data for the correct general region of the world.

