Verwenden Sie einen GUI-Designer oder schreiben Sie ihn selbst für den Desktop?

8

Das Schreiben einer GUI für ein Programm war schon immer eine entmutigende, deprimierende und frustrierende Aufgabe. Es spielt keine Rolle, welche Sprache es ist, es ist extrem schwer zu bekommen, was ich will. Besonders in kompilierten Sprachen wie Java, in denen das Erstellen einer Änderung ein oder zwei Minuten dauert.

Das Ergebnis ist, dass ich für einige meiner Projekte zunehmend GUI-Designer verwende. Sicher, es gibt einen Spagetti-Code, aber solange ich die Konfiguration und einen Hinweis mit der Aufschrift "Dies wurde mit X entworfen" verlasse, habe ich keine Bedenken, dies zu tun.

Ist dies eine gute Möglichkeit, eine GUI zu entwerfen? Noch wichtiger ist, ist es das, was die meisten Menschen tun? Oder ist es üblich, sich einfach hinzusetzen und es aufzuschreiben?

TheLQ
quelle
Ich arbeite an einer Java-GUI-App mit 650.000 Codezeilen, deren Erstellung ca. eine Minute dauert. Wenn Sie jedoch in Eclipse arbeiten, wird es schrittweise für Sie erstellt. Angesichts dessen muss ich nicht jedes Mal die gesamte App erstellen, wenn ich sie ausführen möchte. Ich starte die App einfach neu und sie läuft mit meinen Änderungen. Kein Warten erforderlich.
Nemi
1
Oh ja, und GUI-Builder sind böse. Wenn es Ihr Ziel ist, Software zu entwickeln, die von niemandem (einschließlich Ihnen) gewartet werden kann, sind Sie auf dem richtigen Weg.
Nemi

Antworten:

6

Ich habe noch nie einen visuellen Designer gefunden, der es einfach macht, robuste Designs zu erstellen (wenn jemand welche hat, kann er mich gerne korrigieren). Sie eignen sich gut zum Ablegen von Inhalten in einem Fenster mit fester Größe, um die Dinge zu verspotten, aber wenn es darum geht, etwas zu erstellen, dessen Größe sich gut ändert, das gut mit DPI und Themen funktioniert, und all die anderen Dinge, die eine professionelle Benutzeroberfläche von einer bloßen "guten" unterscheiden - genug ", sie werden ehrlich gesagt mehr Arbeit als nur das Codieren selbst (vorausgesetzt, es wird ein anständiges UI-Framework zum Spielen verwendet).

Visuelle Designer eignen sich hervorragend für das schnelle Prototyping von Software, das Testen von Designs und das Herumspielen, um zu sehen, wie Dinge aussehen, aber ich würde keine für den endgültigen Build verwenden.

Anon.
quelle
Welches Framework verwenden Sie? Ich kann mir nicht vorstellen, eine WPF-Benutzeroberfläche ohne Designer zu schreiben, zum Beispiel ...
Dean Harding
Ich hatte nicht viel Gelegenheit, mit WPF herumzuspielen - das heißt, in den wenigen Fällen, in denen ich es verwendet habe, habe ich nur den Designer verwendet, um das allgemeine Layout zu verspotten und dann die XAML von Hand zu bearbeiten, während ich ein Auge auf das hatte Designansicht, um zu sehen, wie es aussieht.
Anon.
Es ist eine Freude, mit Glade zu arbeiten, und es entstehen Schnittstellen mit der Fähigkeit, die Größe und das Thema einer Benutzeroberfläche zu ändern. Außerdem können Sie die (XML-) Projektdatei einfach zur Laufzeit laden, abfragen, Ereignisse anhängen und plötzlich funktioniert Ihre Anwendung einfach. Nach meiner Erfahrung ist es wirklich das Beste aus beiden Welten. Ganz zu schweigen davon, dass Sie beim Schreiben der Anwendung in C oder Python auch eine automatische Bindung von Ereignisrückrufen erhalten, ohne dass eine Abfrage erforderlich ist.
Jon Purdy
@ Dean Harding Ich benutze WPF seit fast drei Jahren und habe den Designer fast nie benutzt. Ich kann das allgemeine Layout damit beginnen, aber danach mache ich alles von Hand.
MetalMikester
@ Dean Harding - Wenn Sie einen Designer für WPF verwenden, fehlt Ihnen eine der besten Funktionen: das automatische Layout. Ich habe viel WPF gemacht und nie einen Designer benutzt. Meine Designs sind nie so "statisch".
Scott Whitlock
4

Planen Sie in Ihrem Kopf und verwenden Sie dann Stift / Papier. Dies ist der schnellste und einfachste Weg, um ein Design zu initialisieren.

Wenn Sie zur Implementierung bereit sind, verwende ich einen GUI-Designer, anstatt von Hand zu codieren. In Java Swing zum Beispiel kann ich mir bei einer ausreichend großen Benutzeroberfläche vorstellen, wie viel Zeit ich verschwenden würde, wenn ich alles von Hand mache und später ändere. Es ist viel einfacher, einen GUI-Builder wie Netbeans Matisse zu verwenden und dann bei Bedarf leicht von Hand zu optimieren.

brian_d
quelle
Ja, das Erstellen von Swing-Layouts von Hand ist mühsam und zeitaufwändig. Die Verwendung von Matisse war immer meine Wahl
Mahmoud Hossam
3

Erstellen Sie zuerst die GUI auf Papier.

Danach verwende ich einfach den Visual Studios-Entwurfsmodus, um die GUI zu erstellen. Einfach zu erstellen und was Sie sehen, ist das, was Sie bekommen. Außerdem müssen Sie nicht neu erstellen, um die GUI anzuzeigen.

Carra
quelle
2

Ein GUI-Designer ist eine verlockende schnelle Lösung. Aber sich hinzusetzen und es von Hand zu tun, ist eine bessere Alternative für Projekte und Gegenstände, die später nicht weggeworfen werden.

Normalerweise finde ich, dass die beste Methode darin besteht, die GUI zuerst auf Papier zu entwerfen. Zeichnen Sie eine grobe Skizze, wo sich Schaltflächen und andere Komponenten befinden. Überlegen Sie sich dann, wenn Sie in einer Sprache wie Java arbeiten, in der verschiedene Layout-Manager verwendet werden, welche Komponenten und Kombinationen von Layout-Managern erforderlich sind. All dies, bevor Sie mit dem Codieren beginnen. Dann setzen Sie es Stück für Stück um.

Wenn Sie den GUI-Designkurs besuchen, werden Sie das Gefühl haben, große Fortschritte zu machen, bis Sie sich dem Ende nähern und nicht in der Lage sind, etwas richtig zum Laufen zu bringen oder Änderungen vornehmen zu müssen. Es von Hand zu machen scheint eher eine langsame Schildkröte zu sein, aber es sorgt für stetigen Fortschritt. Außerdem erhöht sich Ihre Geschwindigkeit, je mehr Sie dies tun.

jzd
quelle
1

Wie bereits gesagt, ist es besser, nur (a) ein Blatt Normalpapier, einige Haftnotizen (verschiedene Größen) zu verwenden und das Layout auf dem Papier zu erstellen, wobei die Haftnotizen als Steuerelemente (wie Schaltflächen, Kombination) verwendet werden Boxen usw.) (b) ein Prototyping-Programm wie GUI Designer Studio oder das Bleistift-Addon für Firefox ...

Nach der Prototyping-Phase wird es mit dem Layout in Ihrer Nähe einfacher, die Benutzeroberfläche selbst zu codieren, da Sie Muster wie mvc, mvp usw. einfacher implementieren können, da die GUI-Editoren normalerweise nicht zulassen, dass Sie ihren Code ändern da sie es jedes Mal neu schreiben, wenn Sie die Benutzeroberfläche ändern.

Coyote21
quelle
0

Visio bietet eine Reihe von UI-Schablonen, sodass es Stift und Papier effektiv ersetzt und dennoch den gleichen Designansatz bietet - zuerst denken, zweitens zeichnen, zuletzt Code.

Eugene Mayevskis Rückruf
quelle
0

In VB6 und Windows Forms habe ich immer den Designer verwendet, in WPF jedoch nie. Der WPF-Designer erstellt schreckliche XAML, und in WPF entwerfe ich meine Benutzeroberfläche gerne als eine Reihe von Widgets und lasse das Framework alles zur Laufzeit zusammenstellen. Sie verlieren viel von dieser Flexibilität, wenn Sie den Designer verwenden.

Scott Whitlock
quelle
0

Ich sehe es eher so:

( Zeichnen Sie für jede dieser Optionen immer auf Papier oder ein Whiteboard. Vertrauen Sie mir, das spart Zeit und Codefrustration.)

Prototyping:
Verwenden Sie einen GUI-Designer, vorzugsweise einen empfohlenen, der von den meisten in einer bestimmten Sprache verwendet wird. Auf diese Weise wird Ihr Code nicht zu verwirrend, wenn Sie ihn nach Ihren Wünschen (meistens) anpassen können. Da der Code höchstwahrscheinlich später weggeworfen oder stark geändert wird, müssen Sie nicht zu viel Zeit frühzeitig verschwenden im Entwicklungszyklus. Die Verwendung eines GUI-Designers eignet sich für schnelle und einfache GUI-Anwendungen oder um Ihrem Kunden ein grobes Bild der Anwendung zu zeigen, bei der er nicht Monate warten muss, um sie zu sehen.

Kleine Projekte:
Dies ist je nach Sprache und Zeitbeschränkung eine Art Mix-Bag. Die Verwendung eines GUI-Designers hier wäre hilfreich, aber Sie sollten in Betracht ziehen, danach zu bereinigen oder kleinere Komponenten manuell zu erstellen. Auf diese Weise fällt es jedem anderen (oder Ihnen selbst) leichter, Fehler zu beheben und den Code zu lesen. Auf diese Weise erhalten Sie eine bessere Kontrolle und Flexibilität der Benutzeroberfläche. (Auch ein schöner Vorteil des Lernens beim Codieren)

Große Projekte:
In diesem Fall ist es wichtig, GUIs manuell zu erstellen. Größere Projekte können schnell komplex werden und das Erstellen von GUIs mit einem Designer macht das Projekt nur komplexer und schwieriger zu debuggen. Das Erstellen eines GUI-Frameworks für Ihre Anwendung kann dazu beitragen, die manuelle Erstellung einer GUI zu vereinfachen. Eine vollständige Kontrolle über Ihre Anwendung ist erforderlich, da dies bei der Wartung hilfreich ist oder wenn Sie später Funktionen hinzufügen möchten (oder wenn ein nerviger Kunde erwähnt, dass Sie eine Anforderung verpasst haben, lol), ist die Integration dieser Anwendungen weniger frustrierend und sauberer.

Nach meiner persönlichen Erfahrung braucht das Erlernen des manuellen Erstellens einer grafischen Benutzeroberfläche Zeit und einige erfordern schwierige Lernkurven (Heck, ich programmiere in Java und die Oracle Java-Tutorial-Site warnt Sie davor, GUIs selbst zu erstellen und einen Designer zu verwenden), aber am Ende gewinnen Sie Höhere Kontrolle und Flexibilität Ihrer Anwendungen, wodurch wiederum besser aussehende Anwendungen entstehen. Hoffe, Sie verwenden dies eine anständige grobe Anleitung! Viel Spaß beim GUIing :)

Adam
quelle