Technik

In diesem Bereich stellen wir technische Details unserer Applikation vor:

Drei-Schichten-Architektur

 

Für eine möglichst gute Wartbarkeit und Wiederverwendbarkeit des Codes wird eine 3-Schichten Architektur angestrebt (Präsentation / Logik / Datenhaltung).  Die Präsentationsschicht ist durch die Vorgabe der Android-Develpment-Tool Entwicklungsumgebung bereits separat gehalten. Die Definition von Layouts (im XML-Format) und die Verwaltung von Literalen und grafischen Ressourcen in eigenen Ressource-Verzeichnissen gewährleistet die Austauschbarkeit (und auch übersichtliche Wartbarkeit) dieser Schicht.
Die Realisierung einer eigenen Datenhaltungsschicht erfolgt durch einen entsprechenden Aufbau der Klassen im Programmcode und eine Zusammenfassung dieser Klassen in eigene Java-Packages. Die kompletten Datenhaltung ist (mit Ausnahme von wenigen lokalen Einstellungsparametern) am Flickr-Fotoserver. Durch diese separate Datenhaltungsschicht ist die Anbindung der Applikation an einen anderen Fotoserver mit vertretbarem Aufwand möglich.

Programmcode

 

Der Programmcode der Applikation KeepInTouch ist öffentlich verfügbar. Unter der Internetadresse https://kitjku.googlecode.com/svn/trunk/KeepInTouch kann der komplette Sourcecode inkl. der Resource-Files als Eclipse-Projekt heruntergeladen werden. Ein Zugangscode ist nur für die Veränderung der Daten notwendig (Speicherung erfolgt als Subversion-Folder).

Benutzerrollen

 

In dieser Anwendung gibt es nicht die häufig vorzufindenden Benutzerrollen wie Administrator und normaler Benutzer. Der Benutzer meldet sich hingegen nur ein mal beim ersten Start der App mit dem eigenen Flickr-Konto an und hat somit Zugriff auf die eigenen Daten und auf alle öffentlichen Alben sowie Fotos, die Kontakte auf Flickr für diesen Account freigegeben haben. Es wäre jedoch denkbar eine Einstellung zur Verfügung zu stellen, die es dem Benutzer ermöglicht bestimmte Bereich zu sperren. Somit könnte zum Beispiel ein erfahrener Nutzer die App einrichten und dann alle Bereiche die von dem tatsächlichen verbergen, damit nichts mehr verstellt werden kann.


Funktionalitäten

 

Folgende Funktionalitäten sind implementiert:


  • Anmeldung mit OAuth am Flickr Fotoserver
  • Übersichtsanzeige der Fotos als Liste und als Grid: Zoomfunktion mit Anpassung der Größe des Vorschaubildes und der Anzahl der Spalten bei Grid-Darstellung. Ein Click auf ein Foto öffnet die Einzelbilddarstellung (mit Zoom/Verschieben/Rotation).
  • Anzeige als Einzelbild: Zoomfunktion (2-Finger-touch), Verschieben (1-Finger); Rotation (Drehung mit 2-Finger Touch), Weiterblättern mit 2-Finger-Touch in gleiche Richtung, Weiterblättern mit 1-Finger-Touch und Verschieben des Bildes über die Mitte des Bildschirmes hinaus
  • Gallery-Darstellung: Übersichtsleiste und das ausgewählte, größer angezeigte Einzelbild; Blättern durch Auswahl in Übersichtsleiste oder Verschieben des Bildes über die Hälfte des Bildschirmes
  • Anzeige der Fotos mit Kartendarstellung: Auf Google-Maps Karten werden die Fotos (welche auch Geo-Koordinaten zugeordnet haben) am jeweiligen Ort eingeblendet. Die Karte ist umschaltbar zwischen Straßenkarte und Satellitenbild durch wiederholtes anklicken des Menü-Buttons für die Anzeige der Karte. Initial wird der Zoom-Faktor so gewählt, dass alle Fotos angezeigt werden und durch Zoom / Verschieben  kann auf einzelne Fotos fokussiert werden. durch Auswahl eines Fotos schiebt sich die Position dieses Fotos in das Zentrum und Titel/Hinweise zum Foto werden angezeigt. Durch Anklicken des Fotos wird Einzelbilddarstellung (mit Zoom auf Foto etc.) geöffnet.
  • Hochladen von Fotos aus der Gallery des Smartphones oder mit Neuaufnahme eines Bildes; Drehen des Bildes vor dem Upload möglich; Beschriftung des Bildes;
  • Suchen von anderen Flick-Benutzern mit dem User-Namen
  • Anzeige der Fotos von Kontakten
Funktionalitäten, die vorgesehen sind, jedoch nicht implementiert sind:


  • Hinzufügen von gefundenen Benutzern als Kontakt (Freund oder Familie)
  • Anzeige der Fotos mit Filterung nach diversen Kriterien (Album, Hochladedatum etc)
Probleme, welche bei der Implementierung auftraten:


  • Flickr API unterstützt nicht das Hinzufügen von Kontakten und somit konnte diese Funktionalität nicht implementiert werden.
  • Manchmal auftretende Abstürze mit Fehlerursache “Out of Memory”. Treten auf, wenn Bildverarbeitung durchgeführt wird (z.b. Bitmap neu erstellen, um die Rotation eines neuen Bildes durchzuführen).