Update auf Android 6 (Marshmallow)

By | 13. Juli 2017

Ich habe endlich mal wieder ein wenig Zeit gefunden mich meinen privaten Projekten zu widmen und habe mit einem Update des Osiris-Codes auf Android 6 (Marshmallow) begonnen. Ich wollte die Chance nutzen und sofort ein wenig sauber machen. Demnach habe ich den Code einmal völlig umgekrempelt und auch viel rausgeschmissen. Ich habe viele Codepassagen entdecken können, wo ich erstmal ein wenig schmunzeln musste und mich anschließend am liebsten selbst gepeinigt hätte. Müsste der alte Code heute eine Code-Review durchlaufen, so würde das Ergebnis niederschmetternd aussehen. Hier ein kleiner Auszug aus meiner Top 3:

if(blubber) {
   blubber = !blubber;
}

Von Variablen mit Namen wie unten zu sehen habe ich ne Menge gefunden. Das hier ist die Erste die ich gefunden habe:

BufferedWriter lol = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));

Und was ich mir hier gedacht habe weiß ich auch nicht:

if(getConnections()) {
   sortConnections();
} else {
   sortConnections();
}

Das ist alles ein wenig traurig, aber ich glaube wenn man ein wenig über sich selber schmunzeln kann, dann sieht man auch die Unterschiede zur Gegenwart und blickt mit einem Lächeln zurück. Aber nun zum eigentlichen Update:

WebAPI:
Die WebAPI wurde von mir komplett überarbeitet und unterstützt nun eine Authentifizierung. Des Weiteren kommuniziert sie nun ausnahmslos mit Hilfe von JSON und macht das Parsen damit viel einfacher. Dies war schon lange ein nötiger Schritt, allerdings fehlte die Zeit und die Lust alles neu aufzubohren.

Java-Serveranwendung:
Die Java-Serveranwendung, welche für die Livekommunikation mit dem Zielgerät zuständig war, hat ihren Dienst getan und wird nun denke ich auf den Friedhof wandern. Stattdessen möchte ich die Kommunikation gänzlich über die WebAPI steuern. Hier muss ich mich aber selbst noch einmal schlau machen, in wie weit das Arbeiten mit Sockets unter PHP effektiv und performant ist. Sollte sich die Idee als Reinfall herausstellen, so wird auch diese noch ein komplettes Facelifting bekommen und die Netzwerkkommunikation an sich effektiver gemacht. Derzeit sendet die Anwendung auf insgesamt 3 Ports. Dies soll auf einen Port minimiert werden.

Osiris:
Ich habe nicht viel geplant, außer die App für Androidversionen > 6 lauffähig zu machen. Ich habe wie bereits geschrieben auch damit angefangen, bin jedoch auf ein Problem gestoßen mit dem ich nicht gerechnet habe. So habe ich mich noch zum Erscheinungsdatum von Android 6 über die Einführung der „Runtime Permissions“ gefreut: „Wow, das macht mein Smartphone viel sicherer“ –> Leider gibt es für mich jetzt eine weitere Hürde zu nehmen, für die ich derzeit leider noch keine Lösung habe. Derzeit müssen alle „Dangerous Permissions“ beim ersten Start von Osiris durch den User bestätigt werden. „Dangerous Permissions“ sind die Berechtigungen die einer App Zugriff auf personenbezogene oder private Daten geben. Hierzu zählt beispielsweise der Zugriff auf die Kontakte oder das Mikrofon. Das soll kein Dauerzustand sein und ich werde wohl nicht drum herum kommen mir irgendetwas zu überlegen. Falls hierfür jemand bereits nen Vorschlag oder sogar eine Lösung hat, dann würde ich mich über einen entsprechenden Kommentar sehr freuen!

Client-App:
Die Client-App soll ebenfalls ein Facelifting kriegen und in der Lage sein mit der neuen WebAPI zu kommunizieren. Ansonsten sind Funktional keine Änderungen geplant.

Geplant ist ein weiterer Beitrag von mir über die neue WebAPI um die neue Funktionsweise einmal zu verschriftlichen. Ich werde mit dem Beitrag allerdings noch warten bis ich Erkenntnisse zum Thema „Sockets und PHP“ habe.

Viele Grüße,

Barny

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

2 × 4 =