Apache Cordova Android. So Semi Native -code für die Platformen. Eher so eine Art Wrapper zwishen einer "klassischen Wabanwendung" und der eigentlichen Umgebung. So wie ich das verstehe, ehemals ein Adobe Kind, jetzt unter apache Lizens unterwegs. Eigentlich ganz guter Ansatz. Habe aber keine Idee, wie der Marktanteil in 3 Jahren aussieht. Als im kern eine Webanwendung mit HTML5, CSS und Javascript natürlich von der Anwendung her einer der einfachsten Kandidaten. 

Probleme:

  • Auch "Cordova" ist im Grunde ein Kommandozeilen-Tool, das um seine Pracht zu entfalten einiges an Drittprodukten, mit entsprechenden Erweiterungen benötigt. Zunächst VSC (im "normalen" Visual-Studio gab es mal eine Projektunterstützung, das letzte 'update', welches ich gefunden habe stammt aus 2016. Glaube nicht, dass das.... Auf jeden Fall benötigt man für das Build "Gradle" - welches aber z.B mit meinem JDK 22 nicht zufrieden war, weshalb ich zurück auf jdk-17 musste... Hab schon lange nicht mehr so viele Systempfade von Hand "umgebogen" wie in den letzten Tagen.

Das war vor ein paar Tagen.

Heute habe ich mich dann nochmal daran gesetzt, diese Webanwendung, die ich vor ein paar Tagen gebastelt hatte als Android-Anwendung "App" umzusetzen. Naja, zumindest so ähnlich, da cordova ja so wie eingangs beschrieben arbeitet...

Auf dem zweiten Blick ist die Anwendung von Cordova doch recht übersichtlich. Mein bescheidenes Anliegen heute war, eine .apk zu basteln, die auf einem Android-Gerät läuft (ich hab heute die Emulatoren weggelassen und mein Tablet benutzt (beim letzten Mal bin ich an den emulierten Geräten, bzw. mit der Verbindung zu ihnen verzweifelt).

Was sol die Anwendung zunächst können?

1.) Positionsdaten - mit der maximalen Genauigkeit des Geräts - in vorgegebenen Intervallen erfassen...

2.) Diese Position, zusammen mit der Geräte ID an den Server - hier: https://thomas-hering.org/... senden und eine Antwort empfangen.

Ersteres geht erstaunlich einfach und ohne größere Verwirrung. Sinniger Weise wird der Benutzer des Android Gerätes gefragt, ob er das  das Auslesen der Positionsdaten , in der gewünschten Genauigkeitsstufe, zulassen will.

Erstaunlicherweise kann man das sogar auf zweierlei weise erreichen:

  • So wie von der Webanwendung, die ich letzte Woche irgendwann gebastelt hatte..und mit einem cordova-plugin. (Allerdings vermute ich mal, das es im Grunde das selbe ist nur weiter verkapselt - die Bedienung ist wirklich sehr einfach)

Der zweite Task, die Übermittlung der Daten an den Server, war schon etwas gewöhnungsbedürftiger.Zunächst wird ständig die Verbindung zu Server verweigert, weil es gegen Sicherheitsrichtlinien verstößt...

Ich glaubte ich bin sicher nicht der Erste, der diese Einschränkungen bei Android und dem Schutz des Gerätebenutzers - und deshalb auf dem Gerät oder bei Android gesucht hätte... aber vergeblich!

Die entsprechenden Freigaben erteilt man vor dem Build in der config.xml auf Seiten der Anwendung eingestellt wird. Es wird also bei der Installation auf dem Gerät - ohne jede Benutzerangabe - einfach mitgegeben. Ich verstehe den sinn nicht ganz. Will der Herausgeber dadurch etwas böses - wer oder was hindert ihn?

Egal . Ungeschminkt mit der Notwendigsten Oberfläche sieht das auf meinem Tablet jetzt so aus:

Android App

Oben in der Tabelle Stehen die Ausgelesenen Geodaten, der Butten erzeugt einen Abruf  zwischen den vorgesehenen Intervallen - und im Grünen Feld sieht man die Serverantwort - damit man auch merkt, wenn etwas nicht funktioniert.

Damit das Ganze einen informativen Mehrwert hat:

Was die Optik angeht - nein, meine Geschmacksnerven sind nicht vollständig verödet. Das 'debuggen' ist halt etwas schwerfällig - und da hatte ich nicht große Lust zum Designer für den Protozypen zu werden.

Wichtig: Das findet man nicht so leicht im Netz...

Zum debuggen ist google-Chrome (ja, der Browser) ganz gut geeignet.

Man gibt in der Browserzeile (wo sonst die URL einer Website steht) "chrome://inspect" an.

In der sich öffnenden Seite "DevTools" sollte " Discover USB devices" angehakt sein.. (hatte ich erwähnt, das das Android-Gerät mit dem PC verbunden sein muss?

Nach kurzer Zeit der Meditation erscheint dann einiges - unter anderem ein Weg zu den Consolen Ausgaben des Android Geräts, wo sich mögliche Fehler finden...

Falls ich es noch nicht erwähnt haben sollte: Um in den Entwicklermodus meines Samsung Gerätes zu kommen, muss man gaaanz unten in den Einstellungen 7x auf die build-Nummer tippen. (Ich schwör, kein Scheiß) und dort das debuggen über usb erlauben.

Ebenso eine Überraschung: Mein Tablet verrät nirgendwo , dass es einen GPS-Sensor beherbergt - tut es aber offensichtlich: Genauigkeit 27m (identisch mit meinem Handy) geht nicht ohne...

SystemvariablenWeitere Tips: Setze die Pfade zu "JAVA_HOME" sowie "GRADLE_HOME" in den Systemumgebungsvariablen. Ich habe auch den Pfad zu "ANT_HOME" gesetzt. Ist Android Studio nicht installiert, muss auch noch der Pfad zum Android SDK eingetragen werden (fragt mich nicht, wie es mit der Installation funktioniert).

Und: Der Befehl "cordova build android" läuft wie am Schnürchen...Bei neu auftauchendem Unsinn, würde ich zunächst den Befehl: "cordova clean" empfehlen...

 

PS.: Warum der kleine Kerl auf dem Bild? Heute schon bester Mitarbeiter! Gibt es einen Fehler - Quellcode an die KI und fehlerfrei zurück...

Angst!

 

 

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.