Nach dem grossen Datentransfer waren die Server gefüllt mit Informationen zu jeglichen Komponisten und deren Stücken. Nun geht es darum die nötigen Komponenten für die App zu programmieren, um die Daten des Servers nutzen zu können. Dazu gehört eine ausführliche Suchfunktion, eine Liste mit hinzugefügten Stücken und die Stückübersicht. Eine Vorschau dieser Komponente gab es bereits im letzten Blog-Artikel, in welchem es um Design-Entwürfe der App ging – nun gibt es einen tieferen Einblick.

Die besondere Schwierigkeit an Musikstücken ist ihre Form: Ein Musikstück kann ein nicht unterteilbares, ganzes Werk sein. Ein Musikstück kann aber auch nur ein Satz eines Werks mit beliebig vielen Sätzen sein. Die App muss nicht nur Werke, sondern auch Sätze darstellen können, da nicht direkt ein ganzes Werk (mit allen Sätzen) geübt wird, sondern nur ein spezifischer Satz.

Suche

Um die Suche so einfach und effizient wie möglich zu gestalten entschied ich mich für folgendes Prinzip: Der Nutzer sucht erst den Komponisten und wählt diesen aus. Anschliessend wird das Stück gesucht und ausgewählt. Es öffnet sich nun eine Übersicht des Stücks, welche alle Sätze – falls vorhanden – auflistet. Der Nutzer kann die Sätze antippen die er üben möchte, sei es nur eines oder mehrere.

 Komponist

Allgemeines Werk

 Satz / Sätze

Dashboard

Nachdem das Werk (und die Sätze) ausgewählt wurden, wird man zur Stück-Übersicht (Stück-Dashboard) weitergeleitet. Dort erhält man neben den Informationen auch eine Übersicht der ausgewählten Sätze. Zu einem späteren Zeitpunkt im Übeprozess wird diese Komponente äusserst nützlich und wichtig sein, da der Nutzer hier auch weitere Sätze des Werkes zur Übe-Liste hinzufügen kann.

Im Entwicklungsprozess ist mir übrigens aufgefallen, dass es möglich ist, alle Sätze des ausgewählten Werks von der Übeliste zu löschen. In dem Fall bleibt das Werk zwar in der Übeliste erhalten, die jeweiligen Sätze wären jedoch entfernt und das Dashboard somit leer. Da das keinen Sinn macht, habe ich einen Mechanismus einprogrammiert, der erkennt, ob der zu löschende Satz der letzte Satz in der Übeliste ist. Wenn dem so ist, erhält der Nutzer eine spezifische Nachricht, die ihn informiert, dass nicht nur der Satz, sondern das ganze Werk von der Übeliste gelöscht wird. Bestätigt der Nutzer die Nachricht, erfolgt die Löschung auch auf der Stück-Übersichts-Liste, auf welche man weitergeleitet wird (siehe App-Demo-Walkthrough).

Stück-Liste

Die Stück-Übersicht listet alle Werke auf, die der Nutzer zum Üben ausgewählt hat. Über diese Komponente gelangt man zum Dashboard des jeweiligen Werks. Über das Zahnrad kann das Stück von der Übeliste gelöscht werden.

Alternatives Hinzufügen von Sätzen

Bereits beim Stück-Dashboard wurde ersichtlich, dass die App auf das Löschen aller Sätze des Werks vorbereitet sein muss (=> wenn alle Sätze von der Übeliste entfernt werden, muss auch das ganze Werk entfernt werden). Ein ähnliches Verhalten könnte auftreten, wenn der Nutzer einen neuen Satz hinzufügen will. Anstatt es einfach über das Dashboard zur Übeliste hinzuzufügen, könnte der User den Weg über die Suche wählen: Erst sucht er den Komponisten, dann das Stück, dann fügt er die neuen Sätze hinzu. Auch auf einen solchen Fall muss die App vorbereitet sein. Sätze die der User bereits übt, werden schon beim Laden der Satz-Auswahl mit einem Häkchen markiert.

Diesen Komponenten sind grundlegende und wichtige Bestandteile der App, die aufgrund des Datenverkehrs mit dem Server ziemlich komplex sind. Daher wurden sie kontinuierlich weiterentwickelt und verbessert. Auch für das Zusammenspiel mit anderen Funktionen (wie dem Übezeit-Tracker und den Übesessions – dazu mehr im nächsten Blogpost) mussten diverse Anpassungen an diesen Kernkomponenten vorgenommen werden.

Erster Entwurf (Commit 01eb2ce)
Kleine Verbesserungen (Commit ad9eaea)
Grosse Bugfixes & Anpassungen (Commit 97900b8)