Netidee Blog Bild
Ein neues Herzstück für AsTeRICS Grid
Neue Bibliothek zur Anzeige von Rastern in Vue.js entwickelt (19.12.2024)
Förderjahr 2023 / Projekt Call #18 / ProjektID: 6735 / Projekt: AsTeRICS Grid

Zur Anzeige von Rastern in AsTeRICS Grid wurde eine veraltete und seit Ewigkeiten nicht mehr gewartete Bibliothek verwendet. Diese wurde nun durch eine Neuentwicklung ersetzt, welche aktuelle Browser-Technologien verwendet.

Die Entwicklung von AsTeRICS Grid begann im Jahr 2018. Bei der damaligen Recherche hat sich für die Anzeige des Rasters eine Bibliothek mit dem Namen "GridList" als gut geeignet erwiesen. Seit über 6 Jahren war sie nun für die Anzeige der Kommunikationsraster in AsTeRICS Grid verantwortlich und damit eine der Herzstücke der Applikation. GridList ist ein Plugin für jQuery, während AsTeRICS Grid in Vue.js geschrieben ist. Daher war das Verbinden dieser beiden Welten schon von Beginn an eher "hacky", also aus Programmierersicht nicht so schön und sauber, wie ich es mir gewünscht hätte (siehe diese 433 Zeilen Code, die nun bald endlich ausgedient haben).

Während die Lösung mit GridList generell funktionierte, war sie in gewisser Hinsicht auch ein Klotz am Bein, da Anpassungen bzw. Bugfixes nur sehr mühsam möglich waren und sie z.B. auch verhinderte, dass neue Typen von Grid-Elementen einfach als neue Vue-Komponenten hinzugefügt werden konnten, wie man das in einer Vue-Applikation erwarten würde. Stattdessen gab es ein weiteres unschönes File, in welchem dynamische HTML-Templates für verschiedene Element-Typen generiert wurden. Ein Hack, der durch den anderen Hack erst notwendig wurde.

Um diese Situation zu verbessern und endlich nicht mehr ein seit 8 Jahren nicht mehr gewartetes Projekt als Herzstück von AsTeRICS Grid zu verwenden, war mir schon seit langer Zeit klar, dass "GridList" ersetzt werden muss. Jetzt gab es durch netidee endlich die Gelegenheit dazu. Die dabei erste und wichtigste Frage: zu einer anderen (aktuelleren) Bibliothek wechseln, oder etwas komplett Neues entwickeln? Die Recherche brachte folgende mögliche Kandidaten zu Tage, die auch kurz testweise in AsTeRICS Grid integriert wurden:

Die genannten Bibliotheken überzeugten mich also nicht so wirklich. Also - was tun? Ist es möglich in dem doch recht beschränkten Zeitkontigent des netidee-Plans für diese Aufgabe eine komplett neue Library zu entwickeln, die für AsTeRICS Grid besser geeignet ist als ein seit 10 Jahren weiterentwickeltes gridstack.js? Ich war skeptisch, habe aber beschlossen es zu probieren. Bei der Suche nach einem geeignetem Startpunkt bin ich auf das CSS Grid Layout gestoßen, einer Browser-Technologie, die dafür entwickelt wurde Raster-Layouts direkt über CSS darzustellen. Der Browser-Support liegt bei 97% - perfekt. Im nachhinein betrachtet eigentlich logisch, dass es für "AsTeRICS Grid" das "CSS Grid Layout" braucht.

Nach ein paar Wochen Entwicklung ist es heute soweit, ich habe die neue Bibliothek "Vue CSS Grid Layout" für das Anzeigen und Bearbeiten von Rastern mit beliebigen Elementen auf GitHub veröffentlicht. Die Integration in AsTeRICS Grid ist beinahe fertig, derzeit aber noch in eigenem Branch auf GitHub zu finden. Im Readme der Bibliothek gibt es verschiedene Beispiele zum Ausprobieren, z.B. ein einfaches Beispiel, welches ein bearbeitbares Raster in voller Bildschirmgröße darstellt.

Ein neues Herzstück für AsTeRICS Grid, das hoffentlich noch viele weitere Jahre seine Aufgabe erfüllen wird.

 

Video 1: Drag & Drop, Größe ändern und Kollisionsbehandlung in der neuen Bibliothek

Video 2: Verschieben von vielen Elementen auf einmal in der neuen Bibliothek

Vergleich von alter und neuer Bibliothek in AsTeRICS Grid, links alt, rechts neu. Die Neue Bibliothek bietet exaktere Positionierung und, der verfügbare Bildschirmplatz kann besser ausgenutzt werden und dynamische Einstellmöglichkeiten des Designs sind einfach zu implementieren. Bild 1: Vergleich von alter und neuer Bibliothek in AsTeRICS Grid, links alt, rechts neu. Die Neue Bibliothek bietet exaktere Positionierung, der verfügbare Bildschirmplatz kann besser ausgenutzt werden und dynamische Einstellmöglichkeiten des Designs sind einfach zu implementieren.

Tags:

Unterstützte Kommunikation

Benjamin Klaus

Profile picture for user Benjamin Klaus
Technik hat mich immer schon fasziniert und dementsprechend wählte ich auch meine Ausbildung. Nach der HTL in St. Pölten studierte ich Softwareentwicklung an der TU Wien und danach "Health Assisting Engineering" an der FH Campus Wien. Noch faszinierender wird Technik für mich, wenn sie Menschen eine echte Hilfe ist, das Leben bereichert und lebenswerter macht. Der Bereich der Assistierenden Technologien ist ein Forschungsgebiet, in dem genau das Wirklichkeit wird: Menschen mit Behinderung bekommen durch Technik wieder neue Perspektiven und können sonst undenkbare Möglichkeiten für Teilhabe und Selbstbestimmung (wieder-)erlangen.

Ich durfte an der FH Technikum Wien in zwei Forschungsprojekten zu Assistierenden Technologien mitarbeiten und habe dabei ein besonderes Interesse für Unterstützte Kommunikation (UK) entdeckt. Dieses Teilgebiet der Assistierenden Technologien beschäftigt sich mit der Frage, wie Menschen ohne Lautsprache Wege zur zwischenmenschlichen Kommunikation eröffnet werden können. Eine Möglichkeit dafür sind Apps für Kommunikation über Symbole. Mit "AsTeRICS Grid" haben wir an der FH Technikum Wien eine freie Software zu genau diesem Zweck entwickelt, die ich nun im Rahmen von netidee weiterentwickeln darf.
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.

    Weitere Blogbeiträge

    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.