Laden...

Vorstellung Projekt 'Finderwille Einsatz App'

Erstellt von BerndFfm vor 3 Jahren Letzter Beitrag vor 3 Monaten 1.714 Views
BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 3 Jahren
Vorstellung Projekt 'Finderwille Einsatz App'

Hallo,

ich möchte hier mein Projekt 'Finderwille Einsatz App' vorstellen an dem ich gerade arbeite.

Durch die Beschränkung die wir zur Zeit bei Trainings und Einsätzen mit unseren Hunden haben habe ich eine App gesucht um Einsätze und einsatznahe Trainings aus der Ferne zu organisieren und die Live Standorte zu sehen. Leider habe ich da nichts gefunden. Also programmiert man so etwas selber !

Da ich mich normalerweise nur mit Desktop Software und Winforms beschäftige tu ich mich da etwas schwer. Aber man lernt ja gerne dazu.

Für die Server Applikation, die die GPS-Koordinaten entgegennehmen, speichern und darstellen soll, habe ich traccar gefunden.
Das ist eine professionelle Open Source Lösung die von Speditionen, Taxiunternehmen, Krankentransporten und Rettungsdiensten eingesetzt wird und bis zu 10.000 Geräte gleichzeitig im Blick haben kann. Der traccar Server kann neben meiner App bis zu 1200 verschiedene GPS Devices tracken, er versteht über 130 Protokolle. Also geht alles vom Hunde-GPS-Halsband bis zum Rettungshubschrauber. Für die Einsatzleitsoftware die hier in Einsätzen verwendet wird gibt es eine Schnittstelle, so dass die Einsatzkräfte auf der Karte der Einsatzleitsoftware erscheinen. Für Einsatzfahrzeuge gibt es OBD2-Dongle, die man einfach einsteckt und man sieht wo das Einsatzfahrzeug im Wald steht.

Die geplante App soll die GPS Koordinaten, einen Einsatz- bzw. Trainings-Status und einige weitere Daten an die Server Software senden.

Als Plattform habe ich Xamarin.Forms gewählt. Soll ja auch später mal auf einem iPhone laufen.

Die erste Hürde war das Laufen im Hintergrund. Das ist wohl etwas sehr böses bei einer Handy App, jeder Hersteller hat Angst um seine Akkulaufzeit.

Ich habe eine Bibliothek mit Beispiel gefunden, die das recht gut abdeckt. Hie muss auch mit einigen Tricks gearbeitet werden.

Zum Vergleich : GPS-Koordinaten abfragen und an einen Server schicken : 5 Programmzeilen. GPS-Koordinaten im HIntergrund abfragen und an einen Server schicken : 1500 Programmzeilen.

Der erste Entwurf war leider mit festen Größen und lief so nur auf meiner Handy Auflösung. Der jetzige Entwurf basiert auf Grids und passt sich vom Layout an alle Größen an. Lediglich die Schriftgröße und die Größe der Schalter muss man manuell anpassen.

Unten der Bildschirm der App (Design ist nicht mein Ding!).

Hier eine Beschreibung mit einigen Beispiel-Bildschirmen : Finderwille Einsatz App | Finderwille Frankfurt/Main

Gestern war der erste Einsatz bei einer Einsatz-Übung. Hat super funktioniert. Der Standort der Teilnehmer war sekundengenau und metergenau zu sehen.

Vorherige Lösungen wie WhatsApp Live Standort, Viewranger oder Outdoor Active hängen schon mal 15 Minuten bis der nächste Standort kommt. Da ist man schon weit in die falsche Richtung gelaufen. Außerdem sind sie in Hessen bei Einsätzen verboten, weil einsatzrelevante Daten nur auf deutschen Servern gespeichert werden dürfen.

Ich werde berichten wie es mit dem Projekt weitergeht.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 3 Jahren

Trotz einiger Hürden bin ich weitergekommen :

Zuerst ließ sich die App nicht auf dem Handy installieren, die Fehlermeldung lautete "App nicht installiert".

Erst nach einigen Recherchen konnte ich das genaue Protokoll mit dem Programm adb anschauen und den Fehler eingrenzen.
Mit adb konnte ich die vorherige Version komplett de-installieren und die neue Version installieren.

Das Layout hatte ich komplett auf Grid umgestellt und so passt es sich an die verschiedenen Auflösungen an. Nur die Schriftgröße nicht. Die muss man manuell anpassen.
Dazu gibt es jetzt ein Menü mit dem man die Schrift größer und kleiner machen kann.
Im Listview kann ich die Schriftgröße leider nicht ändern, das habe ich dann anders gelöst.

Die erste Rückmeldung der Beta Version : "Man kann nichts sehen !"
"Dark Mode" was ist das ?
Für den Dark Mode muss man so einige Controls anpassen, dann klappt das auch. Nur der DatePicker läuft nicht, der zeigt seine Werte weiß auf weiß an. Lässt sicher leider nicht ändern. Das ist ein known issue und wird hoffentlich bald behoben.

Inzwischen läuft die App sehr gut auf vielen verschiedenen Android Devices.

Link : https://www.finderwille-frankfurt-main.de/finderwille-einsatz-app-betaversion/

Als nächstes kommt die iOS Version dran. Ich habe nun ein MacBook Pro leiheise hier. Leider muss sehr viel installiert werden, so werde ich mir doch einen eigenen Mac zulegen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 3 Jahren

Da Date- und Timepicker in Xamarin.Forms m.M.n. hässlich und nicht intuitiv bedienbar sind und dazu noch im Darkmode nicht funktionieren habe ich jetzt eigene Time- und Datepicker geschrieben. Ganz ohne Design, aber sie funktionieren !

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 2 Jahren

Ich glaube es war eine schlechte Idee als erste Mobile App eine App zu wählen die im Hintergrund laufen soll.

Die App läuft auf Android und iOS manchmal stabil über mehrere Stunden im Hintergrund, manchmal bricht sie sofort ab wenn der Bildschirmschoner angeht.

Woran das liegt weiß ich nicht. Hat da jemand eine Idee ?

Weitere Hürden :

"Error archiving ..."
Xamarin Einstellungen Archives auf C:\Archives einstellen. Der Default Pfad ist länger als 255 Zeichen und erzeugt einen Fehler in Windows.

"iOS Lock Down Error. Mux Error."
iPhone neu starten, dann gehts.

"Error deleting /bin/obj/"
Pfad /bin/obj/ manuell löschen, dann gehts.

Ich glaube dass Xamarin Forms noch nicht so gut in Visual Studio integriert ist. Ich hoffe das wird besser mit .NET Maui.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

16.859 Beiträge seit 2008
vor 2 Jahren

"Error deleting /bin/obj/"
Pfad /bin/obj/ manuell löschen, dann gehts.

In VS2022 solls einen Clean-Setup geben, das bei einem Project / Solution-Clean automatisch automatisch bin/obj löscht.
Hab das bisher nur mit der myCSharp Foren-Solution versucht; aber leider noch nicht gefunden. Wird viele Probleme in Zukunft mit Solutions lösen.

Woran das liegt weiß ich nicht. Hat da jemand eine Idee ?

Gibt keine 100% Run-Sicherheit für Apps.
Für nen "echtes" Background-Verhalten brauchst zumindest auf iOS ne System-Allowance, die aktuell nur Musik- und Navi-Apps erhalten (oder sowas wie eben Corona Warn App durch ne extra API).
Nervt mich bei einigen Apps, wie zB. OneDrive, das nur synct wenn die App "offen" ist, also nicht manuell geschlossen wurde.

Ich kenn zumindest noch Shiny (shinyorg/shiny), das das Handling von Background Services mit Xamarin vereinfacht.

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 2 Jahren

Inzwischen bin ich mit der App viel weiter gekommen.

Unter Android ist die Sicherheit beim Betrieb im Hintergrund sehr hoch, aber 100% geht nicht. Für die App kein Problem, denn die Einsatzleitung sieht sofort wenn der Hintergrundprozess nicht läuft und per Funkruf kann man die Einsatzkraft anweisen die App neu zu starten.

Unter iOS läuft sie absolut stabil im Hintergrund.

Mit der Signierung der iOS App habe ich ja lange gekämpft, und mittlerweile gewonnen. Die Signierung läuft nur auf dem Mac obwohl das anders angegeben ist.

Die App ist inzwischen von Apple für den App Store zertifiziert und kann mit der Apple Software TestFlight an die Beta-Tester verteilt werden. Man kann die Tester per Email einladen oder einen öffentlichen Download-Link erzeugen.

Die Verifizierung der App durch Apple dauert laut Forum 12 - 24 Stunden, früher hat es 7 bis 14 Tage gedauert ! Bei mir hat es 2 Tage gedauert da ich noch einige Fragen beantworten musste.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 2 Jahren

Es gibt weitere Fortschritte :

Viele Einsatzkräfte (Rettungshundestaffeln, Quad-Staffel, Polizei) haben die App testweise im Einsatz und nutzen sie im Training und im Einsatz.

Die Zuverlässigkeit ist sehr gut geworden. 100% für den Betrieb im Hintergrund wird es wohl nie geben. Nicht mehr bei den ganzen Energiesparoptionen.

Die App läuft auch sehr gut in Gebieten mit schlechter Mobilfunkabdeckung über 2G und wird von einigen Einsatzkräften und Helfern in Polen und in der Ukraine benutzt.

Das Deployment dauert nur noch wenige Minuten. Wenn ich die Versionsnummer nicht ändere sondern nur die Buildnummer ist die App sogar immer sofort im App Store verfügbar.

Für die Erfassung der Einsatzkräfte habe ich eine Erfassungsmaske in ASP.NET Core mit Razor erstellt.

Das gefällt mir gut : Zahlreiche Möglichkeiten der Veröffentlichung, man kann Design und Funktionen gut trennen. Ich erstelle eine Exe-Datei die als Dienst auf dem gleichen Rechner läuft wie die GPS Server Software (Windows 10 Rechner).

Hier kann man es sehen (noch ohne SSL) : http://finderwille.xddns.de:5000/

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

BerndFfm Themenstarter:in
3.825 Beiträge seit 2006
vor 3 Monaten

Die App läuft weiterhin gut und zuverlässig ! 
Beim Deployment auf iOS kommen immer mal Fehler, jetzt hat er alle private Keys verloren. Dabei mache ich mit dem mac Mini sonst nichts.

Für die Offline Karten habe ich jetzt einen Tile Server in ASP.NET Core geschrieben, das ging echt einfach und läuft sehr schnell.
So kann man sich die Karten anschauen bevor man sie auf das Handy oder Tablet lädt. Oder man benutzt die Karte im Browser.
In einem Katastrophenfall kann ein lokaler Webserver mit den Karten bis zu 200 Einsatzkräfte und auch alle Rechner mit sehr genauen Karten versorgen. Zur Erinnerung : Im Ahrtal gab es keine Karten vor Ort für die Einsatzkräfte.

Hier der Startbildschirm vom neuen Map Server / Tile Server : https://finderwille.xddns.de:5003/

Hier die Open Street Map Karte von Deutschland : https://finderwille.xddns.de:8086/deutschland_zoomlevel_16.html

Hier die Liste aller verfügbaren Karten : https://finderwille.xddns.de:8086/maps.html

Jeder Karte ist eine SQLite-Datenbank, das Format nennt sich mbtiles-Format. Viele Karten-Apps können darauf zugreifen.

Die Offline Karten von Bulgarien, Türkei, Polen und Ukraine sind übrigens bei einigen Rettungseinsätzen in Benutzung.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3