Bachelorarbeit: Scientific Event Tracker

20 Mai

Seit dem 01.04.11 beschäftige ich mich mit der Konzeption und Implementierung eines Scientific Event Trackers für Android. Die Applikation selbst soll den Konferenzenalltag für Teilnehmer erleichtern, indem Informationen über andere Teilnehmer, Events und Talks abgerufen und Nachrichten ausgetauscht werden können. Diese Funktionen sollen nicht nur über gewöhnliche Menüführungen erledigt werden, sondern auch über NFC direkt abgerufen werden können, indem entsprechende Tags bzw Telefone ausgelesen werden. Erwähnenswert ist hierbei, dass die Arbeit in Kooperation mit Samsung Deutschland bearbeitet wird und sämtliche Testgeräte, sowie die benötigten NFC-Tags gestellt wurden.

Android und OAuth:

Die Datenbasis für die Applikation selbst liefert zum einen ein auf Google App Engine (Java) implementiertes Backend, zum anderen die soziale- / wissenschaftliche Publikationsplattform Mendeley, deren Anbindung über den sicheren Authentifizierungsmechanismus OAuth realisiert wird. Bei der Implementierung von OAuth auf Android ist aufgefallen, dass es nur wenige Libraries gibt, die sich intensiver mit dieser Technik beschäftigen und aufwändige Konfigurationen von Http-Kommunikation übernehmen. Die für Mendeley am besten geeignete Library ist hierbei Signpost, welche jedoch modifiziert werden muss um den OAuth-Prozess für den Benutzer komfortabel gestalten zu können.

Zum einen sollen zum Beispiel die Authentifizierzungswebseite von Mendeley nicht über den externen Browser aufgerufen werden, sondern über den internen Browser. Dies führt zu einem besseren Benutzererlebnis, da die Applikation selbst nicht verlassen werden muss und auf Callbacks besser reagiert werden kann. Wer sich tiefgehender für dieses Thema interessiert kann eine genauere Auseinandersetzung mit diesem Thema auf meinem Blog lesen: Sera-Apps.de – Android und OAuth.

Google App Engine und Java Data Objects:

Ein anderes Thema, welches mich bisher sehr beschäftigt hat, war die mangelhafte Implementierung von JDO (Java Data Objects) bei der Google App Engine. So wird es leider durch Einschränkungen bei JDO nicht möglich besonders aufwändige Datenstrukturen mit Vererbungshierarchien einzuführen. Beispielsweise kann ein Objekt maximal 1 Parent-Objekt haben und muss diesem bei Instanziierung des Parents bereits zugeteilt werden. Dies schränkt den Entwickler besonders bei der Konzeption von One-To-Many-Relationen ein.

Da sowohl die Android-, als auch die GAE-Applikation die selbe Datenbasis teilen sollen, musste dafür gesorgt werden, dass Android die per JSON übermittelten Klassen problemlos wiederherstellen konnte (via Google Library Gson). Hierzu wurde die Key-Klasse zur Identifizierung von Objekten auf der GAE ebenfalls für Android implementiert. Auch für dieses Thema verweise ich bei tieferem Interesse auf einen bestehenden Blog-Post: Sera-Apps.de – Google App Engine und JDO.

Styles und Includes für Android:

Um das GUI der Android-Applikation konsistent und fehlerresistent zu gestalten wurde bei der Implementierung der Applikation starker Gebrauch von Layout-Styles und -Includes gemacht. Dies hat der Vorteil, dass Layouts schnell gestaltet werden können und auch für zukünftige Projekte wiederverwendet werden können. Interessant ist hierbei vor allem, dass Layout-Änderungen nicht mehr in vielen Teil-Layouts nachgepflegt werden müssen, sondern eine zentrale Stelle dafür existieren kann: Sera-Apps.de – Styles und Includes für Android

Aktueller Stand:

Die Phase der Implementierung der Applikationen ist nahezu beendet. Zur Zeit wird lediglich Code optimiert und wo nötig noch kommentiert. Nun beginnt sowohl die Phase der Evaluation (wofür noch ein Fragebogen entworfen wird), als auch der Tests der Applikation selbst. Hierzu wird ein Test-Framework namens Robotium verwendet, welches Silenium gleichkommt und anders als Unit-Tests oberflächenorientiert genutzt werden kann.

Viel Spaß beim Lesen,

Tim

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: