Grundlagen mobiler Anwendungen

Ab dem Wintersemester 2018/19 ändern wir den Inhalt des Moduls etwas. Wir werden innerhalb des Semesters eine Android-App bauen.

Die Übungen werden in der übergroßen Mehrheit Zeit bieten, um an der Android-App zu arbeiten. Nach dem Semester werden Sie in der Lage sein, selbstständig einfache Android Apps zu entwerfen und implementieren.

Anhand von Android lassen sich ganz ausgezeichnet auch generelle Prinzipien der Software-Entwicklung erläutern. Wir werden das exzessiv machen - Sie werden also neben dem Einstieg in die Android Entwicklung einen praktischen Umgang mit einigen Design-Pattern erlernen, die sich theoretisch fundierter und umfangreicher im Modul Software-Engineering diskutieren.

Wir werden eine App bauen. Wir werden das in mehreren Phasen machen. Am Ende der jeweiligen Phase werden die Zwischenergebnisse im Rahmen einer Präsentation vorgestellt. Dabei wird die App gezeigt. Mit Hilfe von Folien wird erklärt wie die App aufgebaut ist und welche Design Pattern genutzt wurden. Diese Folien enthalten ausschließlich Grafiken. Es wird UML genutzt, wann immer das möglich ist. Details / Termin für das Projekt.

Das Semester strukturiert sich entsprechend. Im SU werden wir die notwendigen Komponenten in Android diskutieren, die für die App benötigt werden. Das Üben und Implementieren dauert natürlich länger. In der Übung wird also immer an der App gearbeitet. Im SU aber werden weitere Themen diskutiert, die Gegenstand der Klausur sein werden. Das sind vor allem diese Themengebiete sein: Satellitenunterstützte Ortung, Routing in Ad-hoc Netzwerken, P2P Systeme und digitale payment.

Phase 1: Einstieg

Ziel: Sie haben die GUI einer App gebaut. Sie kennen das Konzept MVC, das Observer-Pattern, den Lebenszyklus einer Android-App.

Phase 2: Persistenz

Ziel: Die Daten der App werden persistent. Sie kennen unterschiedliche Konzepte der Persistierung von Daten. Sie kennen das Memento-Pattern. Sie haben einen Content-Provider implementiert.

In unseren Apps werden Daten persistent gespeichert werden müssen. Wählen Sie bewusst zwischen Shared Preferences, Files, Datenbank oder Content Provider. Sie müssen Ihre Entscheidung begründen können.

Wenn Sie sich an Room heran wagen wollen, steht Ihnen das frei. Wir arbeiten nicht mit Google Cloud in diesem Kurs.

Phase 3a: Netzwerk

Ziel: Ihre App kann Daten an eine andere App übertragen. Wir beschäftigen uns praktisch vor allem mit Ad-hoc Netzwerken (Bluetooth, Wifi-Direct, ggf. NFC). Sie kennen die generellen Schritte eines Verbindungsaufbaus (Publish, Bind, Data Exchange) Sie kennen Konzepte des Service Publishings in Bluetooth und Wifi-Direct.

Phase 3b: Ortung

Ziel: Ihre App kann Daten in einer Karte mit Google Maps darstellen. Sie verstehen die Grundlagen von GPS. Dieses Thema kann man problemlos ohne den seminaristischen Unterricht bearbeiten: einfach dem Tutorium folgen.

Phase 4: Interoperabilität

Weitere Inhalte

Positioning Systems

Routing in Ad-hoc Netzen

Peer-to-Peer Systeme

Digital Payment

Klausuren