0.8.0

This release has once again taken longer than expected, but I think it was worth the wait. This release brings long-wanted features like a map view and is the first release of FOSSWarn, which is funded by NL-Net. As the project is now funded by public money, I would like to give you a more detailed overview of what has happened, what challenges we had, and what comes next.

So first of all: What's new in FOSSWarn 0.8.0?

The new version brings the following changes:

  • The CAP data structure
  • A map view
  • An error logger
  • Preparations for version 1.0.0 for the FOSS Public Alert Server
  • A thread view of updated alerts
  • some bug fixes

CAP data structure

As I started the project, I wasn't aware of the CAP standard, so I implemented the data structure as I thought would be the best. This was fine in the beginning, but I noticed the limitations later. Therefore, I had to rethink the data structure to make FOSSWarn more future-proof, also with the FOSS Public Alert Server already in mind. FOSSWarn now follows internally, mostly the CAP, too. As one of the consequences of the new data structure and to improve the code quality, I also removed the old legacy API, which was still used to display all alerts if the option "Display all available alerts" was activated. This was replaced by the new API. The new map View

This features was on the wish list since the beginning of this project. For a long time, this feature was blocked because I was unsure which OpenStreetMap tiles server (aka the server that gives you the rendered PNGs with the map on it) I could use without any budget. I got the hint that I could use the official server with their permission. So, I asked and got permission.

Handling maps and polygons brings some challenges. The first challenge was to implement a dark mode for the map. I realized that the official OSM tile server does not render a dark mode theme for the map. As I didn't want to blind all the dark mode users, I had to find a workaround. The workaround was then to manipulate the colors of the PNGs. The best solution was to invert the color by 100%, rotate the hue by 180deg, reduce brightness to 95%, and set contrast to 90%, resulting in the map's current dark theme. Let me know what you think about the color theme.

The next step was to draw the polygons on the map. This required some changes in the existing codes as I had not fetched the geoJson files for every alert before. As I already rebuilt the data structure, I also changed the API logic and also fetched every geoJson file. One side effect was that the speed of API requests decreased a bit. For a handful of places, this isn't noticeable, but the view of all available alerts is significantly slower now. As the overview of all available alerts is probably only used out of curiosity, that is manageable.

Polygons also tend to be too detailed, which results in some performance issues. To avoid problems, we use the Douglas Peucker algorithm to reduce the complexity of polygons. This is just the first implementation and will be further improved in the future. Error Logger

One feature that makes debugging a lot easier is the new error logger. The error logger is quite simple as it just writes any error thrown into a log file and displays a dialog to the user. The log file is (of couse) locally on your devices. There is no automatic transmission of log informations to a server. However, if an error occurs and you open a Github issue, you can attach the corresponding part of the log file there. This will make it a lot easier to find and fix the error. Preparation for FPAS

This version will be the last version with direct support for the Nina-APIs. Starting with version 1.0.0 FOSSWarn will completely switch to our new FOSS Public Alert Server. Volker Krause and I are developing this server, which will feature emergency alerts for over 100 countries and push notifications via unifiedPush. This release already contains a lot of code changes for FPAS, but these have not been activated in this release yet. One of the preparations that is already visible is the new view to select a place. You can find the dialog as feature preview in the development settings. The new view searches with nomination for places and lets the user choose a polygon on the map, which will then be subscribed for. Thread view of updated alerts

FOSSWarn now displays only the latest alert in the overview. If there are any previous alerts, the alert will have an additional icon that leads to a thread view of the current and all previous alerts. Notice: If the previous alert is removed from the server, FOSSWarn will not display it anymore. Bugfixes

This release fixes some bugs. Among others, we fixed:

  • a bug with the read status of alerts. This bug is fixed for now but will require some more changes in the future to create a cleaner solution.
  • in the detailed view of a warning, some tags were challenging to read due to a poor contrast value

Team changes

The majority of the work on FOSSWarn is done by myself. But I also have some contributors. Thanks to every weblate contributor who helped translate the app. This release also brings some updated translations.

Previously, Mats had helped out with the project. Unfortunately, he doesn't have the time anymore. Thanks for your work. Next steps

The next step will be version 1.0.0, with the first stable support for the FOSS Public Alert Server. You can follow the development on gitlab or follow the Mastodon account