Dokumentation - Graaph/Intents_SafeFiles GitHub Wiki

NOTIZAPP (Ein EMI-Projekt) Mitarbeiter: Nicolas Schilling, Felix Kahlert, Julian Willingmann

Zu Beginn des Projekts wurde sich innerhalb der Gruppe auf eine gemeinsame Idee für eine App geeinigt und diese wurde schnell gefunden. Da kein Gruppenmitglied über die fortgeschrittenen Java-Kenntnisse verfügte, die nötig gewesen wären ein komplizierteres Projekt umzusetzen, wurde sich darauf geeinigt, ein realistischeres und übersichtlicheres Projekt zu wählen, eine Notiz-App. Diese sollte die Funktionen Speichern, Löschen, Editieren und eine Sharing-Funktion besitzen.

Phase 1 (Mockups, Skizzen, Recherche, Ideensammlung, erste Schritte)

Zunächst wurden Skizzen und Mockups angefertigt um sich eine grobe Vorstellung über die möglichen Funktionen der App klar zu werden und um ein Design-Konzept zu entwickeln. Ungefähr zeitgleich wurde mit der Entwicklung der App in Android-Studio begonnen. Dabei konnte sehr schnell ein Textfeld mit Ausgabe (in einem TextView) realisiert werden, allerdings noch keine Notizen gespeichert werden. Dieses Problem zog sich über Wochen hinweg und konnte schließlich gelöst werden (Einstellungen in den Emulatoren, Speicherfreigabe für die App) wenn auch nicht so wie geplant (eigentlich sollten NutzerInnen bei der Installation der App gefragt werden, ob sie den Gerätespeicher freigeben wollen).

Phase 2 (Coding, Design)

Als die Speicherfunktion endlich funktionierte, konnte sich die Gruppe auf die einzelnen Funktionen konzentrieren. Es wurden zwei Activities (Main und ShowMe (für die Anzeige)) erzeugt

So wurde zunächst das Laden der Inhalte aus einer .txt-Datei über Buttons sowie das Speichern einer Notiz in dieselbe Datei realisiert. Daraufhin wurde geklärt, wie eine Notiz zum editieren oder löschen ausgewählt werden sollte. Hierfür wurde zuerst ein DialogFragment gewählt, später jedoch wurde die einfachere Lösung gewählt, nämlich, dass die Notizen, wenn sie in der ListView angetippt werden, selegiert sind (und grau hinterlegt) und daraufhin mit Buttons am unteren Bildschirmrand bearbeitet.

Infolgedessen wurde die Edit-Funktion realisiert. Dafür ein Notiz-Objekt (mit einem String für die Notiz und einem Boolschen Wert für die Information, ob etwas editiert wurde) angelegt, das per Intents zwischen den Activities versendet werden konnte. Zudem wurde ein Boolscher-Wert mitgeschickt, der die Information wiedergab, ob gerade eine Notiz editiert wird. Wird auf den Edit-Button gedrückt, so wird die ausgwählte Notiz aus der .txt gelöscht, per Intent an die Main-Activity gesendet und dort im Eingabefeld wiedergegeben.

Zuletzt wurde die Sharing-Function programmiert. Diese sendet einen String an andere Apps (wie zB Messenger).

Phase 3 (Testen, Bugs reparieren)

Am Schluss wurde die App ausgiebig und auf verschiedenen Geräten getestet. Hierbei wurde zuerst das TextEdit mehrzeilig gemacht, was UserInnen die EnterTaste erlaubt.

Da allerdings die Speicherfunktion Notizen nach Zeilenumbrüchen trennt, erzeugte diese Entscheidung einen weiteren Bug (Enter = neue Notiz), der vor Ablauf der Frist nicht mehr repariert werden konnte. Dann wurden noch kleinere Verbesserungen vorgenommen:

  • Delete Funktion Leerzeile (fixed)
  • Editierte Notizen gehen verloren, wenn beim Editieren auf „Anzeige“ gedrückt wird (fixed)

Links

Präsentation: http://bit.ly/2nAQBS8

Mockups: http://bit.ly/2DYFFbj , http://bit.ly/2s6yI2m