flpa / mcs

Mixdown Comparison Software is a project to help musicians compare different mixdowns of a recording.
MIT License
2 stars 0 forks source link

AP04: UI-Frameworks vergleichen #35

Closed flpa closed 8 years ago

flpa commented 8 years ago

Und Entscheidung treffen.

flpa commented 8 years ago

SWT

Setup / Development

Man muss erst SWT herunterladen und im Workspace importieren. Danach hat man über Snippets sehr schnell eine erste UI. Für die grafische Bearbeitung der UI gibt es SWT Designer (zB Anleitung) als Standard Eclipse Plugin (basiert auf Eclipse Windowbuilder) Das Plugin schaut auf den ersten Blick relativ intuitiv aus und der generierte Code nicht allzu wild.

:warning: Bei mir glitcht das Plugin gewaltig. Hoffe das liegt nicht am Windowbuilder und würde so auch Swing zB betreffen.

Deployment beim User

Scheint nicht so einfach zu sein, dafür sehen die Applikationen eher nativ aus und sollen gut performen. (beispiele) Man muss pro Plattform ein Package releasen, da SWT native OS Libraries verwendet.

Hier zB eine Anleitung für OSX https://www.eclipse.org/swt/macosx/

Lizenz

EPL, klingt für mich ok. Man muss aber wohl den Source von Software, die EPL-Code verwendet, offen legen.

Meinung

SWT an sich sieht sehr solide aus. Die Abhängigkeit von nativen Libraries und dass man nicht ein Package für alle Plattformen liefern kann spricht für mich aber klar gegen unseren Grundgedanken.

Sollten wir unerwartet Performance-Probleme haben mit anderen Varianten könnte SWT ein Ausweg sein. Durch die OS-nähe soll es besser performen.

kamejosh commented 8 years ago

Swing

Deployment

https://eclipse.org/windowbuilder/

Benutzung

Lizenz

Beispiel

Auf collaboration.technikum wurde bereits ein Beispiel anhand des von mir gezeichneten Mockups hochgeladen.

Meinung

Wirkt sehr angenehm zum Arbeiten, definitiv eine Möglichkeit die uns nicht zu viel Kopfschmerzen bereitet, da auch Design technisch nicht so viel Möglich ist. Dadurch ist hald das endgültige Design etwas eingeschränkt.

flpa commented 8 years ago

Wir sollten noch besprechen ob wir in diesem Task schauen ob die Nicht-Standard-Komponenten, die wir brauchen, enthalten oder als Plugins verfügbar sind. Ich denk das wären die Zeitleiste und der Wellenform-Graph.

kamejosh commented 8 years ago

Zeitleiste gibts bei Swing als "Progressbar" WellenformGraph kommt auf die Umsetzung an, Wenn wir ein Bild erzeugen, dann könnt ma s mit einem Label anzeigen, wenn wirs Zeichnen, dann wärs in einem Canvas Element. Aber wie genau das da funktioniert hab ich no ned ausprobiert.

ghost commented 8 years ago

JavaFX

Setup

Grundsätzlich ist es nicht notwendig, etwas zusätzlich zu installieren um JavaFX zu verwenden. In Eclipse muss lediglich das File jfxrt.jar, das sich in einem Unterverzeichnis der JDK befindet zum build-path hinzugefügt werden. Es ist aber empfehlenswert, e(fx)clipse zu verwenden (Installationsanleitung: https://www.eclipse.org/efxclipse/install.html). Zusätzlich sollte der SceneBuilder installiert werden (Download von Oracle direkt nicht mehr möglich, aber z.B. bei http://gluonhq.com/open-source/scene-builder/ verfügbar). Danach muss in Eclipse noch der Pfad konfiguriert werden (Window -> Preferences -> JavaFX)

Einsatz

Grundsätzlich kann man mit JavaFX auf zwei Arten GUIs erstellen. Entweder direkt per Java-Code oder mit FXML-Files, welche dann im Java-Code geladen werden. Vorteil der XML-Files ist die Trennung von Logik und Layout. SceneBuilder funktioniert außerdem nur mit FXML-Files. Mit SceneBuilder können per Drag and Drop alle verfügbaren Elemente im Layout platziert werden. Es wird nur das FXML-File generiert, der Java-Code muss selbst erstellt werden. Um auf Elemente, die im FXML-File definiert werden per Java-Code zugreifen zu können, muss pro FXML-File eine Controller-Klasse erstellt werden.

Tutorials

http://docs.oracle.com/javase/8/javafx/get-started-tutorial/get_start_apps.htm http://code.makery.ch/library/javafx-8-tutorial/part1/ http://blog.essential-bytes.de/fxml-in-javafx/

Lizenz

Oracle Binary Code License (gilt auch für Java-SE), sollte also keine Auswirkungen haben

Meinung

Es ist definitiv etwas Einarbeitungszeit notwendig, aber die Verwendung ist nicht schwierig. JavaFX bietet alle Elemente, die wir für unser Programm brauchen, mit einem LineGraph kann die Waveform gezeichnet werden (habe ich mit Zufallszahlen schon ausprobiert). Dabei müssen nur die Koordinaten der einzelnen Punkte übergeben werden. Zeitleiste könnte man als Slider oder als Progressbar umsetzen. Das Design kann per CSS angepasst werden, das habe ich aber noch nicht ausprobiert.

flpa commented 8 years ago

Nach Vergleich und Diskussion haben wir uns auf JavaFX geeinigt. Das Framework ist modern und hat eine Linegraph-Standardkomponente.