Entwicklung einer Cross-Plattform App

  • Hallo zusammen,


    ich hätte Lust, mich in meiner (zugegebenermaßen begrenzten) Freizeit mal an der Entwicklung einer kleinen App zur Fernsteuerung von DMXC3 zu versuchen. Ich habe gesehen dass es vor Jahren mal Ansätze zu einer Android-App gab, die aber nicht mehr weiter gepflegt wurde (letzter commit vor 9 Jahren). Außerdem würde ich gerne ein Cross-Plattform Framework wie z.B. Flutter benutzen in der Hoffnung dass das ganze dann sowohl unter Android, iOS als auch Web nutzbar ist. Wenn ich die aktuelle Architektur von DMXC richtig verstanden habe gibt es einen gRPC-Server („Umbra“), über den GUI und Backend kommunizieren. Ich habe auch gesehen, dass die gRPC Schnittstelle öffentlich verfügbar ist. Meine Idee war, die App über diese Schnittstelle mit DMXC sprechen zu lassen. Gibt es dazu weitere Dokumentation oder Beispiele, wie diese zu verwenden ist? Mich würde im ersten Schritt z.B. das Thema Softdesks interessieren - wenn es gelingt für Softdesks ein App-basiertes Frontend zu entwickeln wäre ja schonmal einiges möglich. Natürlich in der Annahme dass Softdesks kein reines GUI-Feature sind, so gut kenne ich mich mit DMXC dann doch noch nicht aus.

    Und noch eine Frage am Rande: Was ist eigentlich der Grund dafür, dass DMXC selbst nicht open source ist? Gewinn wird mit einer Freeware ja ohnehin nicht gemacht, warum also Entwicklung „hinter geschlossenen Türen“? Gerade mit Blick auf Community-Interesse wie meines würde Zugang zum Quellcode die Entwicklung ja sicher beschleunigen (für mich wäre es z.B. interessant zu sehen wie die gRPC Schnittstellen in DMXC verwendet werden).


    Liebe Grüße :)

  • Hallo,

    ich hätte Lust, mich in meiner (zugegebenermaßen begrenzten) Freizeit mal an der Entwicklung einer kleinen App zur Fernsteuerung von DMXC3 zu versuchen. Ich habe gesehen dass es vor Jahren mal Ansätze zu einer Android-App gab, die aber nicht mehr weiter gepflegt wurde (letzter commit vor 9 Jahren). Außerdem würde ich gerne ein Cross-Plattform Framework wie z.B. Flutter benutzen in der Hoffnung dass das ganze dann sowohl unter Android, iOS als auch Web nutzbar ist. Wenn ich die aktuelle Architektur von DMXC richtig verstanden habe gibt es einen gRPC-Server („Umbra“), über den GUI und Backend kommunizieren. Ich habe auch gesehen, dass die gRPC Schnittstelle öffentlich verfügbar ist. Meine Idee war, die App über diese Schnittstelle mit DMXC sprechen zu lassen. Gibt es dazu weitere Dokumentation oder Beispiele, wie diese zu verwenden ist? Mich würde im ersten Schritt z.B. das Thema Softdesks interessieren - wenn es gelingt für Softdesks ein App-basiertes Frontend zu entwickeln wäre ja schonmal einiges möglich. Natürlich in der Annahme dass Softdesks kein reines GUI-Feature sind, so gut kenne ich mich mit DMXC dann doch noch nicht aus.

    Hierzu mal als kleine Info, es gibt (oder gab zumindest letztes Jahr) Entwicklungen bezüglich einer App aus der Community. Da könntest du mal schauen / nachfragen, wie der Stand ist (war auf unserem Discord-Server).

    Zu den Softdesks: Die sind aktuell leider tatsächlich ein reines GUI Feature. Das wird sich irgendwann noch ändern und wir planen da auch, die Management-Teile in den Kernel umzuziehen. Aber Stand jetzt sind diese rein in der GUI vorhanden.

    Und noch eine Frage am Rande: Was ist eigentlich der Grund dafür, dass DMXC selbst nicht open source ist? Gewinn wird mit einer Freeware ja ohnehin nicht gemacht, warum also Entwicklung „hinter geschlossenen Türen“? Gerade mit Blick auf Community-Interesse wie meines würde Zugang zum Quellcode die Entwicklung ja sicher beschleunigen (für mich wäre es z.B. interessant zu sehen wie die gRPC Schnittstellen in DMXC verwendet werden).

    Wir hatten uns bisher dafür entschieden, den Sourcecode nicht öffentlich zu halten, um so die Möglichkeit von Sonderversionen zu eliminieren. So gibt es eine offizielle Version, welche von uns stammt und nicht verschiedene weitere Versionen mit reingebauten Features, die ein User gerade spontan braucht. Das sorgt nur für Verwirrung zumal ein Großteil unserer Community auch eher nicht-Programmierer sind. Aber wenn jemand wirklich ein Feature einbauen will, geht das ganz gut über ein Plugin, weil man damit auch recht viel erreichen kann in DMXControl 3. Dafür gibt es auch entsprechende Beispiele auf unserem GitHub Account. Außerdem haben wir die Erfahrung gemacht (und man sieht das auch an vielen mittelgroßen Git-Projekten), dass zwar viele den Code dann nutzen wollen, aber wirklich mitgearbeitet wird nicht und so besteht auch eigentlich kein Unterschied bei den wirklichen Maintainer zwischen unserer Herangehensweise und von Open Source.

    Das heißt aber nicht, dass wir nicht offen für Mitarbeit sind. Wir unterstützen gerne dabei, Entwicklungen für DMXControl 3 zu machen. Sei es mit Code-Beispielen oder Antworten auf Fragen zu der Funktionsweise. Und wer für DMXControl 3 entwickeln möchte, kann auch über den Beitritt zum Verein und entsprechender Mitarbeit Zugriff auf den Code erhalten.

    Und zum Schluss: Von Zeit zu Zeit stellen wir unsere Entscheidung auch auf den Prüfstand und entscheiden dann jeweils auf Basis der aktuellen Gegebenheiten, ob wir weiterhin bei Closed Source bleiben oder doch in Richtung Open Source gehen.

    Viele Grüße
    JP

    im Falle eines Falles klebt Gaffa einfach alles, denn Gaffa ist dein Freund und Helfer :thumbup:

  • Danke für die (wahnsinnig schnelle) Antwort :D Bin mal auf den Discord gehüpft.

    Schade dass die Softdesks nicht vom Kernel gemanaged werden, da hätte man vermutlich viel direkt mit erschlagen können dafür einfach eine alternative GUI zu implementieren und die Logik dem Kernel zu überlassen.

    Danke für die Erklärung zum Thema OS :) Ich persönlich würde mich über eine zukünftige Veröffentlichung auf jeden Fall freuen, schon allein aus Interesse. Und Sicherheit + Qualität profitieren im Schnitt ja auch davon. Mal schauen, wenn ich länger dabeibleibe hier stell ich vielleicht irgendwann mal einen Mitgliedsantrag :D

    LG