Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
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