22.01.2014 Aufrufe

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

116 Umsetzung des Prototyps<br />

Controller<br />

Ein erster wichtiger Bestandteil der Architektur wird von den Controllers repräsentiert. Die Aufgaben<br />

eines Controllers bewegen sich im Umfeld der Daten-Kontrolle: in einem Controller werden<br />

bestimmte Vorgänge abgewickelt und dessen Ergebnisse weiter zu den Views eingereicht. Dabei verwendet<br />

der Controller die für den Zweck der behandelten Aufgabe relevanten Modelle.<br />

Im konkreten Fall wurden folgende Controllers definiert:<br />

• BackendCommunicationControllerBase: In diesem Controller werden Vorgänge für die Kommunikation<br />

mit dem Backend definiert. Eingekapselt wird eine synchrone und asynchrone Art der<br />

Kommunikation, mittels der Bibliotheken android-async-http 26 sowie die in Android SDK eingebettete<br />

Bibliothek namens HTTP Client 27 aus dem Apache-Projekt.<br />

Bereitgestellt von diesem Controller sind Fehlerbehandlungen, die Aktualisierung des Aktivitäts-<br />

Symbols im “Hauptmenü”, die Generierung und Einbettung von HMAC Signaturen sowie entsprechend<br />

die Zusendung der HTTP Anfragen.<br />

Eine weitere Entwicklung im Rahmen dieses Controllers wäre die Untersuchung anderer Bibliotheken<br />

zur Steuerung von ausgehenden HTTP Anfragen (engl. Requests), wie z.B. die leichtgewichtige,<br />

vom Google Android Team entwickelte Bibliothek namens HttpUrlConnection.<br />

Dieser alternative Weg könnte aus Sicht der Performanz getestet werden – eine Hypothese ist,<br />

dass die Optimierung des Vorgangs anhand von Android-spezifischen Konstrukten stattfindet.<br />

• Model-Spezifische Controllers: Des Weiteren wurden spezifische Handlers von REST-Anfragen<br />

für jedes Model (s.u.) entwickelt, die die Ereignisse (z.B. Anfrage schlug fehl, Anfrage mit folgendem<br />

Ergebnis [erfolgreich] beendet usw.) dem View (über das Model) mitteilen. Jeder spezifische<br />

Controller erbt von der genannten BackendCommunicationControllerBase und setzt je<br />

nach Anfrage-Typ (eine binär, MessagePack-getriebene oder eine normale Datenübertragung) eine<br />

Schnittstelle um – entweder BackendAsyncBinaryHTTPResponseHandler oder BackendAsyncHTTPResponseHandler.<br />

• AppPreloadController: Dieser Controller wird für die Überprüfung spezifischer Vorbedingungen<br />

bei dem Start der jeweiligen Anwendung angewendet. Die zu überprüfenden Vorbedingungen sind<br />

folgende:<br />

– Überprüfen, ob die Anwendung auf dem End-Gerät zum ersten Mal läuft. Hiermit können<br />

z.B. spezifische Maßnahmen ergriffen werden, wie die Darstellung einer Anleitung zur ersten<br />

Anwendung oder die Darstellung eines Formulars zum Eingeben eines minimalen sozialen<br />

Profils (siehe auch 3).<br />

– Überprüfen, ob Wi-Fi aktiviert ist oder nicht. Wenn noch nicht aktiviert, wird diese Wahl<br />

automatisch betätigt.<br />

– Überprüfen, ob eine Wi-Fi Verbindung erfolgreich etabliert werden konnte. Falls die Verbindung<br />

nicht hergestellt werden konnte, wurde der Nutzer zum Android-spezifischen Menü<br />

weitergeleitet, das für die Wi-Fi-Verbindung zuständig ist. Diese Wahl wird getroffen, um sicherzustellen<br />

dass eine Verbindung mit dem lokalen Netzwerk erfolgreich hergestellt werden<br />

kann.<br />

26<br />

http://loopj.com/android-async-http/<br />

27<br />

http://developer.android.com/reference/org/apache/http/client/packagesummary.html

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!