Förderjahr 2023 / Projekt Call #18 / ProjektID: 6670 / Projekt: OSMD Native
Die Entwicklung mobiler Anwendungen, die sich mit der Darstellung und Interaktion von Musiknoten beschäftigen, hat in den letzten Jahren signifikante Fortschritte gemacht. Ein spannendes Projekt in diesem Bereich ist die Implementierung einer React-Native Bibliothek, die OpenSheetMusicDisplay (OSMD) nutzt, um MusicXML Musiknoten auf Mobilgeräten anzuzeigen. Dieser Blogbeitrag gibt einen Einblick in die Kernfunktionen dieser Bibliothek, die Herausforderungen bei ihrer Entwicklung und die Vorteile, die sie Entwicklern und Anwendern bietet.
Nutzung von React Native und WebView
Die Basisfunktionalitäten von OSMD, wie das Laden und Darstellen von MusicXML-Dateien, wurden durch die Integration einer WebView in React Native ermöglicht. Diese Entscheidung eröffnet die Möglichkeit, die App später um native Module in Kotlin und Swift für Android bzw. iOS zu erweitern. Durch die Nutzung von React Native wird die Entwicklung und Wartung der Bibliothek vereinfacht und beschleunigt.
Benutzerdefinierte Anzeigeoptionen
Ein entscheidender Aspekt der Bibliothek ist ihre Flexibilität. Entwickler können die Anzeige und Funktionalität durch verschiedene Optionen, bekannt als OSMDOptions, anpassen. Dazu gehört die Möglichkeit, einen Dark Mode zu aktivieren, zu entscheiden, ob Titel oder Instrumentennamen angezeigt werden sollen, und sogar die Farbe des Cursors anzupassen. Diese Anpassbarkeit macht die Bibliothek für eine breite Palette von Anwendungen und Benutzerpräferenzen geeignet.
Audioplayer Integration
Ein weiteres herausragendes Merkmal ist die Implementierung eines Audioplayers. Dieser ermöglicht es den Nutzern, die MusicXML-Stücke nicht nur zu sehen, sondern auch zu hören. Die Qualität des Audioplayers wurde unter anderem auf Android getestet und bestätigt. Zusätzlich bietet die Bibliothek die Möglichkeit, die Position im Musikstück durch einfache Touch-Gesten zu ändern, was die Interaktivität erheblich steigert.
Sicherheits- und Benutzererfahrung
Um die Sicherheit und eine fokussierte Benutzererfahrung zu gewährleisten, blockiert die Standard-WebView-Funktionalität das Verfolgen von Links innerhalb der Noten. Dies verhindert, dass Benutzer versehentlich oder durch manipulative Links zu unerwünschten Webseiten navigieren.
MXL-Dateiunterstützung und Zoom-Funktion
Die Unterstützung für das Laden von MXL-Dateien ist aktuell noch in Entwicklung. Herausforderungen wie das Umwandeln der Dateien in einen Base64-String und das Handhaben von Zeichen außerhalb des UTF-8 Formates erfordern besondere Aufmerksamkeit. Zudem wird an einer verbesserten Zoom-Funktion gearbeitet, um die Benutzererfahrung weiter zu optimieren, indem sichergestellt wird, dass auch beim Zoomen das ganze Musikstück und Bedienelemente sichtbar und nutzbar bleiben.
Fazit
Die Entwicklung dieser React-Native Bibliothek zur Darstellung von MusicXML Noten mit OpenSheetMusicDisplay markiert einen signifikanten Schritt vorwärts für Entwickler und Anwender im Bereich der Musiktechnologie. Durch die Kombination von Flexibilität, erweiterten Funktionalitäten und einem Fokus auf Benutzererfahrung und Sicherheit, bietet diese Bibliothek eine leistungsstarke Plattform für die Schaffung vielseitiger Musik-Anwendungen. Die laufenden Arbeiten und geplanten Funktionen versprechen, dass diese Bibliothek weiterhin an der Spitze der technologischen Entwicklungen in der Musiknotation und -wiedergabe stehen wird.