Ein Patten für das Gluon Mobile Framework

Harry05

Bekanntes Mitglied
Hi,

ich wollte zu Übungszwecken ein Mobile Design, was ich gefunden habe in das Framework Gluon mobile umsetzen -> Das Gluon Framework.

Also ich wollte erst mal die Gui haben aber mir fehlen die Ansetze, was ich beachten muss und bräuchte da mal eine Anleitung oder ein Patten, so gar jemanden der das fxml File drüber schaut.

Also sowas wie:
Schritt 1. Lerne die Elemente, die Container besser zu verschachteln in Scene Builder.
Schritt 2. schaue was du alles zusammen ziehen kannst.
Schritt 3. ...

Ich habe es vor in fxml file zu machen so weit es geht oder wenn es überhaupt geht. Habe im Scene Builder die Leere mobil Vorlage benutzt die Gluon vorgibt.

ich habe die 7 designs mit rangehängt die ich umsetzen wollen würde.

Bitte um längere Unterstützung.
 

Anhänge

  • b4 – 1.png
    b4 – 1.png
    264,8 KB · Aufrufe: 11
  • b4 – 2.png
    b4 – 2.png
    58,1 KB · Aufrufe: 12
  • b4 – 3.png
    b4 – 3.png
    169,4 KB · Aufrufe: 10
  • b4 – 4.png
    b4 – 4.png
    141,8 KB · Aufrufe: 7
  • b4 – 5.png
    b4 – 5.png
    78,2 KB · Aufrufe: 7
  • b4 – 6.png
    b4 – 6.png
    33,8 KB · Aufrufe: 9
  • b4 – 7.png
    b4 – 7.png
    54,8 KB · Aufrufe: 8
Hallo Harry05,

finde ich ne coole Sache, ich selbst habe auch schon ein bisschen damit rumgespielt. Generell mag ich auch die UIs in FXML deklarieren, aber ich bin mir nicht sicher wie performant es ist, wenn es auf mobilen Systemen laufen soll. Fxml arbeitet sehr viel mit Reflections und je nachdem wie komplex deine UI aufgebaut ist.

Ich bin kein Experte in dem Bereich und muss auch sehr oft Hilfe von den Kollegen @dzim holen.

Ich denke wenn du das alles schon zusammen gedragged and gedropped hast, muss du dich auch noch ein bisschen mit CSS einarbeiten, wenn das nicht schon der Fall ist, damit es wie auf den Bildern so schön aussieht.

Poste einfach deine Probleme hier rein, hier sind genug Profis die dir weiterhelfen.

Grüße
lam
 
@lam_tr ich verstehe nicht ganz den Sinn des FXML jetzt nach deiner aussage. Ich dachte es soll die Gui Programmierung einfacher machen und es stellt sich heraus das ich das doch hart codiert machen muss im Java code und es komplizierter ist als gedacht.

Ich habe irgendwie das Gefühl es ist noch nicht ausgereift nix ganzes nix halbes. Es gibt irgendwie keine vernünftigen Bücher zu diesem Thema oder es ist ein Thema für eine DR. Arbeit.

Die doc für Gluon Mobil ist auch nix Gluon ist so 5 jahren auf dem Markt. Ich glaube eine App die Produktiv ist und mit Gluon Mobil gemacht wurde ist Watch dog für Apple. währe toll von anderen App's in Gluon zu wissen um diese in ihre Einzelteile zu zerlegen.

Ich kann auch das design file hochladen, wenn du willst es ist eine adobe xd file.
 
@lam_tr ich verstehe nicht ganz den Sinn des FXML jetzt nach deiner aussage. Ich dachte es soll die Gui Programmierung einfacher machen und es stellt sich heraus das ich das doch hart codiert machen muss im Java code und es komplizierter ist als gedacht.
Ich finde den Performance Artikel dazu leider nicht mehr. Aber generell Reflections in Java verlangsamt alles. Ich selbst bin ein großer Fan von Fxml, hatte bisher nur wenig Problem mit zu arg verschachtelten Layouts. Die Profi JavaFX Jungs schreiben die UIs direkt in Java, in deren Code habe ich bisher wenig Fxmls gesehen. Es macht die UI Programmierung schon viel einfacher und schneller. Was meinst du denn genau mit "hart codiert"?

Ich habe irgendwie das Gefühl es ist noch nicht ausgereift nix ganzes nix halbes. Es gibt irgendwie keine vernünftigen Bücher zu diesem Thema oder es ist ein Thema für eine DR. Arbeit.
Ich sag mal JavaFX ist schon sehr ausgereift, nur die Mobile Geschichten sind noch nicht ausgereift, obwohl es auch schon einige Jahre Gluon Mobile gibt.

Die doc für Gluon Mobil ist auch nix Gluon ist so 5 jahren auf dem Markt. Ich glaube eine App die Produktiv ist und mit Gluon Mobil gemacht wurde ist Watch dog für Apple. währe toll von anderen App's in Gluon zu wissen um diese in ihre Einzelteile zu zerlegen.
Viele Apps basierend auf Gluon Mobile gibt es vermutlich noch nicht. Ich habe vor ein paar Tagen diese App entdeckt https://github.com/jperedadnr/Game2048FX. Habs kompiliert und auf mein Android Handy installiert, alternative kannst du auch von Google play installieren.

Ich kann auch das design file hochladen, wenn du willst es ist eine adobe xd file.
Benötige ich nicht. Wenn du etwas zusammengebaut hast und da Anregungen brauchst, können wir dir da mehr dazu sagen.

Grüße
lam

P.S. Ein Post von Tom Schindl, er hat kurz erwähnt dass FXML langsam ist https://tomsondev.bestsolution.at/2013/08/29/convert-fxml-to-java-as-part-of-the-build/
 
Also es ist nicht in allen Fällen so, dass Reflection so böse und langsam ist - es hängt schon noch ein wenig davon ab, was man damit macht.
Das eigentliche "Problem" ist, dass für FXMLs wesentlich mehr vom System zu tun ist:

Code: Instantiiere Klasse (eventuell muss noch Dependency Injection gemacht werden).
FXML: Lade XML File aus den Ressourcen (I/O-Operation), XML parsen, UI initialisieren, Controller laden und einhängen, FXML-Injection vornehmen (und dann noch eventuell weitere eigene Dependency Injection durchführen).

Hauptsächlich ist folgendes interessant: Auf Systemen, wo System-Ressourcen nicht so start limitiert sind (also Desktop...), reden wir hier von vielleicht max 100ms - je nachdem, was du im Controller noch so treibst. Wenn du auf mobilen Geräten unterwegs bist, gibt es aber - aus eigener leidiger Erfahrung mit JavaFX - eher Engpässe in den Systemressourcen. >100ms kann schon hässliche Effekte haben. Dein UI kann wie eingefroren wirken, wenn zu viel auf dem FX-Thread gemacht wird... Ich habe reichlich optimieren müssen, bis es - speziell auf Android - performant lief.
Bei der SIX (Schweizer Börse) verwenden sie einen JavaFX-Client als internes Händler-Tool. Hier wurde auf alles was Fancy ist verzichtet, um eine near-real-time Anwendung zu erhalten. FXML waren ein No-Go.

Also zusammenfassend: FXMLs sind schon ok, wenn man sich überlegt, wo sie sinnvoll sind. Ich verwende sie heuer meist nur noch für "grosse/komplexe" Layouts. Die kleinen Sachen sind alle Code.
Und wenn ich die Möglichkeit habe, Kotlin zu verwenden, ist alles Code via TornadoFX (offiziell nur Java 8, gibt aber einen Branch für Java 10+).

------

Beispiele für (OpenSource) Apps:
https://github.com/devoxx/MyDevoxxGluon
https://github.com/HanSolo/SpaceFXMobile
und ein paar andere.

Wir selbst (unsere Firma) haben zwei Apps im Store, die darauf basieren, aber gerade nach Java 11 migriert werden, da die gegenwärtige Technik nur auf iOS < 13.3 läuft. Problem: Dadurch haben wir im Moment zwei Code-Basen: Die alte (Java 8, Gradle) für Android und die neue (Java 11, Maven) für iOS... Auch irgendwie hässlich.
 
@dzim ja gut, also muss ich die Gui mit java coden nicht mit FXML File? also ist FXML Ausschussware(für mich)? ich kann es nicht begreifen. was ist den mit der reiner Android Programmierung, da macht man die view mit .xml file oder auch lieber java code und warum macht android Studio Vorschläge .xml views(bull shit) ?

ah so ich glaube das Gluon Mobile = Original android Programierung ist und FXML von gluon = dem xml von Android.


wie ist den der weg mit gluon und dem design Bildern siehe oben ?
 
Der Unterschied mit den XMLs zu reinem Android ist, dass diese dort vorkompiliert werden. Das macht die Sache etwas einfacher.
Aber: Mit dem Aufstieg von so Frameworks wie React (und React Native), Vue, Flutter, etc. steigen auch die primären Entwicklungsumgebungen der beiden grossen Mobilen Betriebssysteme auf GUI-im-Code um - oder nähern sich dem an...

Android: https://developer.android.com/jetpack/compose/tutorial
iOS: https://developer.apple.com/xcode/swiftui/
Für JavaFX gibt es eben mit Kotlin TornadoFX.

Unabhängig davon, und um deiner Frage wieder etwas näher zu kommen:
Beides - Code und FXML - sind gangbare Wege. Es hängt davon ab, was man erreichen möchte. Also wie gesagt: Komplexe UIs mit FXML, kleinere als Code.
 
Alternativ kannst du auch FXML designen und mit Tom Schindls Tool zu Java Code konvertieren.

Es geht halt nur darum dass wenn du nur auf das Design achtest und Performance egal ist, dann kannst du auch für deine App Fxml benutzen.
 

Neue Themen


Zurück
Oben