Jetzt Kotlin!
Nach React Native kommt Kotlin (10.05.2024)
Förderjahr 2023 / Projekt Call #18 / ProjektID: 6670 / Projekt: OSMD Native

OSMD-Native: Kotlin

Im vorherigen Blogpost haben wir beschrieben, wie wir unseren OSMD Audio Player, der MusicXML-Noten im Browser anzeigt und abspielt, für mobile Apps zu React Native portiert haben. Damit ist es schon für jeden Entwickler möglich, sehr leicht und in kurzer Zeit Apps mit Anzeige und Abspielen von Noten zu entwickeln, im Rahmen von React Native.

Für diesen Post soll der Fokus auf Kotlin bzw. Java liegen, was die Einbindung des Players in Android-Apps erleichtert, die Kotlin oder Java nutzen. Da Kotlin 100% kompatibel zu Java ist, werden wir hier nur noch Kotlin erwähnen, Java-Entwickler können diese Komponente selbstverständlich auch einfach verwenden. Prinzipiell könnte man auch React Native über Kotlin einbinden, allerdings ist es natürlich viel einfacher, direkt eine Kotlin-Komponente zu verwenden, die keine React Native-Konfiguration benötigt. Genau das war die Idee des Projekts, den Entwicklern unzählige Stunden an Arbeit abzunehmen, und den Zugang zur Entwicklung von Musikapps stark zu vereinfachen.

Unsere Kotlin-Komponente unterstützt grob die gleichen Features wie in React Native, und sieht auch fast identisch aus, was ein bewusstes Ziel war, um Multiplattform-Apps möglichst homogen gestalten zu können:

Unsere OSMD Audio-Player-Komponente in nativem Kotlin

Folgende Features werden in Kotlin unterstützt:

  • Setzen von OSMDOptions (u.a. Anzeigeeinstellungen) via props, z.B. ob Titel und Komponist angezeigt werden sollen, oder die Standard-Schriftart. Wir unterstützen hier per JSON alle OSMDOptions, die OSMD auch im Web anbietet.
  • Eine lokale oder per URL angegebene MusicXML-Datei laden
  • Playback-Kontrolle wie Start, Pause, Reset
  • Zoom In und Zoom Out, z.B. über Buttons

Die zentrale Komponente OSMDView kann über die Kotlin-Bibliothek erstellt und dann eingebunden werden.

Natürlich arbeiten wir auch an einer Beispiel-App in Kotlin, um die Verwendung beispielhaft nachvollziehen zu können. Die Kotlin-Komponente, wie die in React Native, ist prinzipiell schon verwendbar, aber natürlich optimieren wir noch verschiedene Dinge und fügen wichtige Features hinzu.

React Native

Auch die React Native-Komponente haben wir nicht vergessen und weitere Verbesserungen vorgenommen. So wurde ein Problem mit dem Laden von MXL-Dateien behoben (die im Grunde speziell gezippte MusicXML-Dateien sind), die Dokumentation wurde erweitert, usw.

Swift und iOS

Die dritte Komponente neben React Native und Kotlin, die iOS vereinfacht abdecken soll, wird das Folgeprojekt nach Kotlin, hierzu werden wir in folgenden Blogeinträgen mehr verraten. Vorerst blicken wir jedoch erst einmal sehr zufrieden auf die Fortschritte bei React Native und Kotlin zurück, während wir weiter an den erwähnten nächsten Schritten arbeiten.

 

Thomas Buchstätter

Profile picture for user bukaznik

Skills:

Projektmanagement
,
Produktmanagement
,
Javascript
,
Community Managmement
,
Marketing
,
Business Development
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.
    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, können Sie Ihre Einwilligung jederzeit via unserer Datenschutzerklärung anpassen oder widerrufen.