Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

320

[EntwicklerBlog] UI Überlegungen

Bewertung:

Von ITgenie98, Mittwoch, 25. Oktober 2017, 16:36

Hi!

==============================================================================================================================================
Anmerkung: dies soll kein Tutorial sein wie man was macht, das würde einfach den Ramen sprengen!
==============================================================================================================================================

Wer hat schon mal versucht schnell und einfach eine Platfromübergreifende App zu entwickeln? Genau, ich!
Das stellte sich (unter c++) allerdings als Monsteraufgabe heraus. Die Frameworks die ich testete wollten unter Win 7 Nicht laufen. :(

Also nach alternativen für Platformübergreifende Apps gesucht und Electron gefunden.

==============================================================================================================================================

Electron ist eine Platformübergreifende Software die im Grunde aus 2 Teilen besteht:

Der Main-Prozess:
Das ist unser Hauptprozess, das Herz unserer App. Er wird durch NodeJS betrieben.

Die Render-Prozesse:
Solch ein Prozess kann vom Hauptprozess erstellt werden. Es handelt sich hierbei ganz einfach um ein Chromium Fenster.

Im Grunde ist also Electron ein lokaler Webserver der die App "hosted".
Das Grundgerüst für eine Einfache Electron App ist schnell gelegt, allerdings wie sieht es mit der UI aus?

==============================================================================================================================================

Web-UI ist im grunde wie eine GUI, man kann alles selbst machen, oder man greift nach einem Framework.

Eines der bekanntesten ist wohl React, wobei React kein Framework ist sondern nur eine Bibilothek die einem die möglichkeiten für UI's gibt.
Grob gesagt implementiert React Virtueles-DOM und rendert dieses dann als HTML auf deiner Seite.

(Kleine info am rande: Ein Beispiel für die Kombination Electron und React ist z.b. Discord)

Nun haben wir React also kanns losgehen mit der UI oder? Nein, noch nicht ganz, denn React selbst bringt keine Komponenten wie z.b. Buttons usw mit.
Dazu benötigen wir eine Bibilothek (bzw wir schreiben sie uns selber) wie z.b. Blueprint-js.

Nun zu einem der (meiner Meinung nach) größten Probleme von react: die Kommunikation.
Es ist wirklich SCHWIERIG Daten von einem platz an den anderen zu verfrachten.

nun gibt es folgende Möglichkeiten:
- Frameworks die die Kommunikation vereinfachen, bsp Flux
- Callbacks nutzen: reicht Daten In der Hirachie nach oben weiter (child -> parent)
- Context: stellt Daten einem gesamten subtree bereit (also allen child's und deren child's usw.)
- Observer: Ein Programmteil das Veränderungen erkennt und dementsprechend reagiert.

Nun ist natürlich zu überlegen welches die beste lösung für unseren Editor wäre.
Ich habe mich für einen Observer entschieden und nutze dafür PubSub-JS
Hierbei handelt es sich um ein simples publish (herausgeben, veröffentlichen) / subscribe (abonnieren) System.
Komponenten bzw Klassen können ein Topic (Thema) abonnieren. Sollten nun Daten mit diesem Thema an anderer Stelle des Programmes herausgegeben werden, kümmert sich die Bibliothek darum das diese Daten an alle Klassen weitergeleitet wird die eben halt abonniert haben. Einfach und effektiv.

==============================================================================================================================================
Hier ein beispielbild (uii leak!):

Bild

==============================================================================================================================================
Wie findet ihr das Programme (oder "apps" wie sie neuerdings auch gerne genannt werden) auf solch einem Webpage-Browser Prinzip basieren?
Oder findet ihr eher das Programme und Projekte dieser Größenordnung nativ, also in c, c++ o.ä. geschrieben werden sollten?

Mfg IT8

Dieser Artikel wurde bereits 43 mal gelesen.


Kommentare (5)

  • 5

    Von ITgenie98 (Samstag, 28. Oktober 2017, 10:30)

    @Josey
    Es wird ja ein neuer Maker, XP und VX unterscheiden sich ja auch in den Ruby-Scripts und können nicht einfach so kopiert werden. Bei meiner Eigenen Maker Engine wird es warscheinlich auch unterschiede geben und XP-Skripts werden nicht ohne weiteres laufen ^^"

  • 4

    Von Josey (Samstag, 28. Oktober 2017, 09:52)

    Müsste Ruby nicht eigentlich auch irgendwie im Maker mit drin sein?
    Sonst funktionieren die ganzen ruby-basierenden Befehle in den Maker-Scripts doch nicht o.o

  • 3

    Von Playm (Freitag, 27. Oktober 2017, 22:53)

    Du kannst gerne weiter "Programme" statt "apps" schreiben. Ich versuche in meinem Blog nur hipp und cool zu sein, wenn ich von "apps" schreibe. ;)

    Zu deinem letzten Absatz: So ein zusätzliches Enviroments oder Layer, wie Electron und NWjs durch den Browser oder manch andere Programme durch Qt oder Programme die in virtuellen Maschinen laufen durch die VM halt mitbringen bedeutet immer auch größere Dateien. Wenn man nativ programmiert und Systembibliotheken einsetzt hat man natürlich den Vorteil, dass die Programme schlank und klein bleiben, weil man nicht noch die Zwischenschichten mitliefern muss. Sowas würde ich im Hinterkopf behalten.

    RPG Micky wird zum Beispiel immer für das was er eigentlich tut unnötig fett sein, weil ein voller Rubyinterpreter und die Qt-Bib drinsteckt.

  • 2

    Von ITgenie98 (Freitag, 27. Oktober 2017, 15:59)

    Im Grunde habe ich nur niedergeschrieben was ich benutze um den Editor zu Programmieren xDD

    Achja btw, was wäre besser Ruby oder JavaScript für die Skripts?

  • 1

    Von Josey (Freitag, 27. Oktober 2017, 11:39)

    Boah sorry, ich hab mir das durchgelesen, aber nix kapiert XD
    Worum gehts? :D°

Blog Navigation

Nächster Artikel

[RMXP] Autotiles und ihre ID's

Von ITgenie98 (Sonntag, 29. Oktober 2017, 20:19)

Vorheriger Artikel

[Entwickler-Idee] Eigener Maker

Von ITgenie98 (Sonntag, 22. Oktober 2017, 12:14)