X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FREADME.txt;fp=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FREADME.txt;h=0be5a3e35aad7aa7c5845567c20c3460e4a0f6ad;hb=48e758721a39298a85c69ecc7267f3daf6993e78;hp=0000000000000000000000000000000000000000;hpb=ec703feba2fdc5bdd0d00bf17c4566473ffd718f;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/README.txt b/app/src/main/java/de/dhbwloe/campusapp/README.txt new file mode 100644 index 0000000..0be5a3e --- /dev/null +++ b/app/src/main/java/de/dhbwloe/campusapp/README.txt @@ -0,0 +1,74 @@ +Die gesamte App wurde auf Basis einer einzigen Activity, +auf welcher dynamisch Fragmente ausgetauscht werden aufgebaut. + +Wichtige Java Klassen der App: +* CampusApp + Die Klasse der haupt Activity. + In dieser Klasse befindet sich die initialisierung des Grundgerüsts der App. + Dazu gehören die Headerleise inklusive Such-Eingabe, die Navigationsleiste sowie + der Platzhalter für spätere Fragmente. + Die Klasse bildet den haupt Einstiegspunkt der App (Launcher) und erstellt beim start + eine global verfügbare Instanz der Klasse CampusAppContext + +* CampusAppContext + Der "Kontext" der App, ein einzelnes zentrales Objekt, + was zur Laufzeit für alle weiteren teile der App zur verfügung steht. + Innerhalb der Klasse CampusAppContext werden instanzen zum Navigations Manager, + Datenbank Manager und der App Activity bereitgestellt. + +* NavigationManager + Der Navigationsmanager (instanziert durch CampusAppContext) verwaltet die auf der + App Activity angezeigten Fragmente und dient zur App internen Navigation. + z.B. AppContext.getNavigationManager().navigatePage("Dashboard") + Die einzelnen Fragmente der App müssen in CampusAppContext eingetragen werden. + +* fragments/* + Fragmentspezifischer Code. Jedes Fragment der App wird im Hintergrund von einer + eigenen Klasse verwaltet, welche hier zu finden ist. + Fragmente, welche auf der App Activity angezeigt werden sollen müssen + die Klasse CampusAppFragment erweitern. + Die Klassen wurden dabei stets nach dem prinzip + ()*(ListAdapter/ListItem) + benannt. + +* database/* + Datenbankspezifischer Code. Sämmtliche Datenbankabfragen werden durch die Klasse + DatabaseManager verwaltet. Je nach Abfrage werden hierbei die entsprechenden Hilfsklassen + MensaplanDatabaseHelper, NewsDatabaseHelper, VorlesungsplanDatabaseHelper genutzt. + Auch die Struktur der Datenbank wird vom DatabaseManager beim ersten Start der App erstellt + und bietet eine einfache Möglichkeit für spätere Updates der Struktur. + +* mensaplan/* + Beinhaltet Code zum Herungerladen, Einlesen und Speicherung der durch die + XML Schnittstelle bereitgestellten Daten. + Die Klasse MensaTagesplan repräsentiert ein einzelnes Menü der Mensa. + Diese Klasse dient als Transportobjekt sowohl vom XML Parser zur Datenbank + als auch von der Datenbank an andere Teile der App. + +* news/* + Selbes Prinzip wie mensaplan/*, jedoch fürs Einlesen der News (XML Parser) + +* vorlesungen/* + Selbes Prinzip wie mensaplan/*, jedoch fürs Einlesen der Vorlesungsdaten (ICAL Parser) + +* nfcreader/* + Code zum einlesen der Mensakarte. Dieser Code ist zu großen Teilen nicht selbst erstellt. + Bereitgestellt durch: https://git.sterul.com/student-projects/dhbw-card-reader + +* search/* + Beinhaltet Code zur Verwaltung der App Suche. + Auch die entsprechenden HTTP Clients zur weiterleitung der Sucheingaben an die DHBW/STUV Webseite + befinden sich hier (DhbwSearchHelper, StuvSearchHelper) + Die App interne Suche besteht im grunde aus einem haufen von der App selbst erstellter + Search Indices (Klasse SearchIndices) welche in der Datnebank gespeichert werden. + Mithilfe der Klasse SearchTarget werden die teilweise mit Parametern bestückten + Ziel Seiten dekodiert und aufgerufen. (z.B. #Vorlesungsplan#groupid=15 ) + +* network/* + Beinhaltet Hilfsklassen für den XML/ISC Parser + +* wifi/* + Beinhaltet Hilfsklassen für die automatische WLAN Konfiguration. + Unter anderem sind ist hier auch der von der DHBW Bereitgestellte + "Secure Login" für das dhbw-wlan realisiert. +