Die App greift auf verschiedene Datenquellen zu. Die Daten liegen  nicht nur auf verschiedenen Servern, sondern auch in verschiedenen  Formaten vor. Jede Quelle mit ihren jeweiligen Eigenarten wird in den  folgenden Abschnitten dokumentiert.

Vorlesungen

Die Vorlesungen der DHBW Mosbach (im folgenden: DHBW) stehen  auf einem Server der DHBW zur Verfügung. Es ist zum Glück nicht  notwendig, bei Veränderungen an der Kursstruktur, wie dem Anlegen eines  neuen Kurses, die App zu aktualisieren. Dies ist darin begründet, dass  der Server eine einer Verzeichnisauflistung ähnliche Datei unter http://ics.mosbach.dhbw.de/ics/calendars.list zur Verfügung stellt. In dieser Datei ist pro Zeile zuerst der Kursname  und dann mit einem Semikolon getrennt die URL zur eigentlichen  ics-Datei aufgelistet.

Die ics-Dateien der DHBW befolgen nicht den iCalendar Standard. Dies stellt sich insofern dar, als dass laut Standard jeder Termin einen global (im Sinne von weltweit)  eindeutige Kennzeichnung besitzen soll. Dies ist jedoch bei der DHBW  nicht der Fall. Termine die zum gleichen Startpunkt starten besitzen  dieselbe Kennzeichnung. Daher muss bei der Auswahl einer Bibliothek  genau darauf geachtet werden, wie die Bibliothek intern die Termine  verarbeitet und ob alle Termine nach der Verarbeitung noch existieren.

Außerdem sind die Dateien nicht direkt nach einer Änderung verfügbar.  Stattdessen generiert das Planungstool der DHBW Textdateien, die von  einem PHP-Script in ics-Dateien umgewandelt werden. Diese Konvertierung  findet sofort statt. Jedoch befinden sich die Dateien danach auf einem  internen Server der DHBW und sind nicht aus dem Internet erreichbar.  Stattdessen kopiert ein Service in regelmäßigen Abständen die Dateien  auf den öffentlich zugänglichen Server.

Veranstaltungen

Die Veranstaltungen werden durch die StuV in einem Google-Kalender  gepflegt. Wie bereits die Vorlesungen, handelt es sich auch bei den  Veranstaltungen um ics-Dateien. Im Gegensatz zur DHBW hält sich Google  jedoch an den Standard, sodass die meisten Bibliotheken ohne Probleme  verwendet werden können. Es bietet sich jedoch an, dieselbe Bibliothek  zu verwenden, die für die Vorlesungen verwendet werden. Dieser Kalender  ist unter der Adresse https://www.google.com/calendar/ical/asta.dhbw.de_08mkcuqcrppq8cg8vlutdsgpjg%40group.calendar.google.com/public/basic.ics zu finden. Die Inhalte werden neben der App auch auf der Website der StuV präsentiert.

Mensaplan

Der Mensaplan wird (nahezu) jede Woche durch das Studierendenwerk Heidelberg als PDF Datei online bereitgestellt. Wann genau der Plan aktualisiert wird, ist leider nicht  bekannt. Im Regelfall geschieht dies jedoch im Laufe des  Montagvormittags.

Nachrichten

Die App lädt in jeder Synchronisation auch immer eine JSON Datei von der Webpräsenz herunter. Beim Aufruf der URL wird durch die App der  jeweils eingestellte Kurs als URL-Parameter an die Schnittstelle  gesendet. In der JSON Datei werden innerhalb eines Arrays Nachrichten an  die App übermittelt. Die Schnittstelle stellt nur Nachrichten zur  Verfügung, welche in der Zukunft liegen, sodass eine Abfrage vergangener  Nachrichten nicht möglich ist. Gleichzeitig erfolgt auch nur das  Übermitteln von Nachrichten, die für den gesendeten Kurs gedacht sind.

Jede Nachricht enthält einen Titel, Inhalt, eine Priorität sowie Start und Endzeitpunkt. Die Priorität 1 gibt an, dass die Nachricht nur in der Aktuell-Ansicht  der App angezeigt wird. Jede Nachricht ist genau im Zeitraum zwischen  den beiden angegebenen Zeitpunkten sichtbar. Die Priorität 2  dagegen sorgt dafür, dass zusätzlich zu der Anzeige in der App auch zum  Startzeitpunkt eine Benachrichtigung mit der entsprechenden Nachricht  präsentiert wird. Benachrichtigungen der App erfolgen grundsätzlich ohne  Ton.

Application Programmable Interface

Eine Nachricht mit der Priorität 42 kann eine spezifische  Aktion in der App auslösen, ohne dass der Anwender etwas davon  mitbekommt. In diesem Fall enthält das Titel Feld der Nachricht die  auszuführende Aktion, während der Inhalt den Payload der Aktion enthält.

Zurzeit sind in der App sechs Befehle definiert. Vier der Befehle  sind dafür gedacht, im Bedarfsfall die URLs für verschiedene Quellen  auszutauschen. In dem Fall ersetzt der Payload aus der Nachricht einfach  die hart-codierte URL. Die zwei anderen Befehle sind zur Steuerung des  BSOD gedacht. Einer der beiden ermöglicht es, den Bluescreen für die App  einzuschalten. Der übergebene Payload wird dem Anwender als  Fehlermeldung angezeigt. Der andere Befehl deaktiviert den Bluescreen  wieder, benötigt dafür aber keinen Payload.

Neuigkeiten der StuV

Die Neuigkeiten den StuV ist ein RSS Feed damals zu finden unter http://stuv-mosbach.de/feed/ der Homepage der StuV. Die Datei wird durch die WordPress Präsenz generiert. Daher  können Fehler in WordPress auch Auswirkungen auf den RSS Feed haben.

EDIT (2018-08-05): Verlinkung im Text von http://stuv-mosbach.de/feed entfernt (Status 404).