Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Most important / difficult GUI concepts

 
Bert Bates
author
Sheriff
Posts: 8898
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Guys,

Let's say you've got a friend who's a programmer, but not a GUI programmer...

Now let's say that you want to teach her how to code GUIs... what are the top X (where X is 3-10), topics or concepts, that are necessary to really "get" GUI programming.

I'll start with a few ideas:

1 - It's important to be really solid with the idea of events and callbacks
2 - It's important to have a decent handle on the basics of MVC

Others?

Thanks,

Bert
 
Darryl Burke
Bartender
Posts: 5125
11
Java Netbeans IDE Opera
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If we're talking Swing (or even AWT):

-- Don't block the EDT. Understand the single threaded rule.
-- Don't use a null layout. Learn how to use layout managers.
-- Don't use a visual designer. At least, not until you know enough to be able to read and understand the auto-generated code.
 
Michael Dunn
Ranch Hand
Posts: 4632
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
> what are the top X (where X is 3-10), topics or concepts, that are necessary to really "get" GUI programming.

1) events
2) [daylight]
3) layout managers
4) renderers
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Darryl Burke wrote:If we're talking Swing (or even AWT):

-- Don't block the EDT. Understand the single threaded rule.


Nearly all the UI toolkits I've worked with are single threaded. So I think covering this is important, and rather, threading in general, regardless of the toolkit.
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
- Being native.

By that I mean, adhere to the target OS's guidelines for UI's as much as possible. For Apple, this seems to be vital if you want your apps accepted in the app store.
 
Christophe Verré
Sheriff
Posts: 14691
16
Eclipse IDE Ubuntu VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Indeed, threading (e.g Swing's EDT) is a very important concept to understand. Otherwise, your friend will end up with frozen screen, ArrayOutOfBoundsException and all sort of hair-pulling troubles.
 
Maneesh Godbole
Saloon Keeper
Posts: 11021
12
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In addition to what has been already cited (everyone +1)
Event handling
Custom painting and the Graphics class
Renderers and Editors
 
Don't get me started about those stupid light bulbs.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic