プログラムのGUIを作成することは、常に困難で憂鬱でイライラする作業でした。どの言語でもかまいません。欲しいものを手に入れるのは非常に難しいです。特にJavaのようなコンパイルされた言語では、変更がビルドされるまでに1〜2分かかります。
その結果、一部のプロジェクトでGUIデザイナーを使用することが増えています。確かにいくつかのスパゲッティコードがありますが、設定と「これはXで設計されました」というメモを残す限り、私はこれを行うことに抵抗はありません。
これはGUIを設計する良い方法ですか?さらに重要なことに、これはほとんどの人がすることですか?それとも、ただ座ってそれを書き出す一般的な方法ですか?
堅牢なデザインを簡単に作成できるビジュアルデザイナーを実際に見つけたことはありません(誰かが気に入った場合は、自由に修正してください)。固定サイズのウィンドウにデータをダンプして物事をモックアップするのに適していますが、サイズが適切に変更されるものを作成する場合、DPIやテーマ、その他のすべての機能を使用して、プロフェッショナルなUIを単に「良い」ものから分離します。十分に」、彼らは自分でそれをコーディングするよりも正直に多くの仕事になります(適切なUIフレームワークを試してみると仮定します)。
ビジュアルデザイナーはexcellentであり、ソフトウェアのプロトタイピング、デザインの試行錯誤、物事の様子を試すために遊んでいますが、最終的なビルドには使用しません。
頭の中で計画してからペン/紙を使用するのが、デザインを初期化する最も簡単な方法です。
実装の準備ができたら、手作業でコーディングする代わりに、GUIデザイナーを使用します。 Java Swingの例では、十分な大きさのインターフェースがあれば、すべて手作業で行って後で変更することで無駄になる時間を想像できます。GUIビルダーを使用するほうがはるかに簡単です。 Netbeans Matisseのように、必要に応じて少し手で微調整します。
まず、紙にGUIを作成します。
その後、Visual Studiosデザインモードを使用してGUIを作成します。作成が簡単で、表示されるのは取得したものです。さらに、GUIを表示するためだけに再構築する必要はありません。
GUIデザイナーは魅力的なクイックフィックスです。しかし、座って手作業で行うことは、後で捨てられないプロジェクトやアイテムのより良い代替手段です。
通常、私は最良の方法は、最初にGUIを紙の上で設計することです。ボタンやその他のコンポーネントが配置される場所の大まかなスケッチを描きます。次に、Javaのような言語でさまざまなレイアウトマネージャーを利用する)作業をするとき、どのコンポーネントとレイアウトマネージャーの組み合わせが必要になるかを考えます。コーディングを始める前に、これらすべてを実装してください。少しずつ。
GUI設計コースを受講すると、終わりに近づき、何かが正しく機能しないか、変更を加える必要がなくなるまで、大きな進歩を遂げているように感じられます。手でやるのは遅いカメのように見えますが、着実に進歩しています。また、スピードを上げるとスピードが上がります。
誰かがすでに言ったように、(a)普通紙1枚、付箋(さまざまなサイズ)を使用し、付箋をコントロール(ボタンなどのコンボ)として使用して、用紙にレイアウトすることをお勧めしますボックスなど)(b)GUI Designer StudioのようなプロトタイピングプログラムやFirefoxの鉛筆アドオン...
その後、プロトタイピングフェーズの後、レイアウトが手前になると、UIを実際に自分でコーディングするのが簡単になります。これは、MVC、MVPなどのパターンを実装できるためです。通常、GUIエディターではコードを変更できないためです。 UIを変更するたびに書き換えられるためです。
VB6とWindowsフォームでは常にデザイナーを使用しましたが、WPFでは使用しませんでした。 WPFデザイナーはひどいXAMLを作成します。さらに、WPFでは、UIを一連のウィジェットとして設計し、フレームワークに実行時にすべてをまとめさせます。デザイナーを使用すると、柔軟性が大幅に失われます。
私はそれをもっとこのように見ています:
(これらのオプションのいずれでも、 常に 紙やホワイトボードに描いてください。時間とコードのフラストレーションを節約できると信じてください)
プロトタイピング:
GUIデザイナーを使用します。できれば、特定の言語でほとんどの人が使用している推奨デザイナーを使用してください。そうすれば、(ほとんどの場合)好みに合わせてコードを微調整できるので、コードが混乱しすぎず、さらに、コードが破棄されたり、後で大幅に変更されたりする可能性が高いため、早期に多くの時間を無駄にする必要がありません。開発サイクルで。 GUIデザイナの使用は、すばやく簡単なGUIアプリケーションに適しています。また、クライアントが見るために数か月待つ必要がないアプリケーションの大まかな画像をクライアントに示すのに適しています。
小規模プロジェクト:
これは、言語と時間の制約に応じて、ちょっとしたミックスバッグです。ここでGUIデザイナーを使用すると便利ですが、後からクリーンアップするか、手動で小さなコンポーネントを作成することを検討してください。そうすれば、他の誰か(またはあなた自身)がバグを修正してコードを読むのが簡単になります。これにより、GUIの制御と柔軟性が向上します。 (また、コーディングしながら学ぶことの素晴らしい利点)
大規模プロジェクト:
これは、GUIを手動で作成することが不可欠になるときです。大規模なプロジェクトはすぐに複雑になり、デザイナーでGUIを作成すると、プロジェクトがより複雑になり、デバッグが困難になります。アプリケーションのGUIフレームワークを作成すると、GUIを手動で作成する作業を簡単に中断できます。アプリケーションを完全に制御する必要があります。これは、メンテナンスに役立つため、または後で機能を追加する場合(または要件を逃したと言及している厄介な顧客)、それらを組み込むことで、イライラが少なく、クリーンになるためです。
私の個人的な経験では、GUIを手動で作成する学習には時間がかかり、一部は難しい学習曲線を必要とします(ヘック、私はJavaでプログラムし、Oracle Javaチュートリアルサイトは警告します自分でGUIを実行してデザイナーを使用することはできません)が、最終的にはアプリケーションの制御性と柔軟性が向上し、見栄えの良いアプリケーションが作成されます。これはまともなラフガイドを使用してください!
VisioはUIステンシルのセットを提供するので、ペンと紙を効果的に置き換えますが、同じ設計アプローチを提供します-最初に考え、次に描画し、最後にコードを記述します。