The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Which screen size should I optimize my GUI for?

I am writing a Swing-based GUI application for the masses.  What screen size should I optimize my GUI for so that my GUI looks the most presentable?  I really don't want to dynamically set every single component size based on the current screen size because I just don't have the time.  What is the best choice for a common denominator screen res these days? 

1024 x 768 ?  Something else?  Everything will still work okay on an 800 x 600, but there will be some serious scrolling going on.  If the majority of people are using fairly high resolutions, I can fit more components on one screen, but I wouldn't want to attempt that if it means excessive scrolling for the majority of users.
Trey Moore Send private email
Tuesday, October 17, 2006
If your customers need to be able to run your application while in "safe mode", then you must design it to fit within 640x480.

Otherwise, you can let your audience determine your decision. Most consumers and "office workers" are probably running at 800x600 or 1024x768. Most engineers, developers, scientists, gamers and the like are running at even higher resolution and/or have two monitors or one widescreen monitor.

I think you should limit your GUI to 800x600 and create additional windows or replace the main window as needed unless you are displaying a chart, graph or profile that normally wouldn't fit into 800x600 anyway. If that's the case, then your users probably will be running at higher resolutions so bump up accordingly.
Tuesday, October 17, 2006
Not sure if its relevant to you by Vista guidelines suggest optimisation for 1024x768
Tuesday, October 17, 2006
The logs for my three websites for the past two years reveal 1024x768 to be the most popular resolution by far.
Andrey Butov Send private email
Tuesday, October 17, 2006
Depends on your market.  If you sell to folks like my mother, then you want to optimize for 800x600.  If you sell to someone like me, then 1024x768 is good. (I run either 1280 or 1600 depending on the computer).

What is your target audience?  That can have a lot of say in what GUI size you optimize for.  Typically the more techy your audience, the bigger the screen res available.

One of my websites has almost 80% Firefox usage.  Another has less than 10%.  I can't just blanket claim that Firefox is the predominate browser w/out knowing the audience.
Eric D. Burdo Send private email
Tuesday, October 17, 2006
Thanks a lot for the responses.  I now have more confidence in my decision to stick with 1024 x 768 as a best fit for the "everyman" user. 

Right now, I can't count on my audience being in any particular cohort as the app is too general-purpose, and I don't have any users yet. 

I'm thinking 800 x 600 is on the way out as most of the stock computers come configured at something larger than that, and the low-tech people probably won't fiddle w/ the settings.  This is just my gut feeling, and I have nothing to back it up.

It would be good if there was a pie chart out there that showed the percentage of users who operate at each resolution.
Trey Moore Send private email
Tuesday, October 17, 2006
I have to agree about the market niche evaluation remarks.

I know a shop that uses 40- and 50-somethings as developers and testers on older legacy systems.  Out of maybe 35 people perhaps ONE uses a resolution above 800x600.  Then again they've been given (single) 19" CRTs to work with too.

It isn't even all Cobol.  A bit of Java and even VB6 in that place.

One guy is still crying.  They very recently moved these folks up to WinXP and now he can't readily set the resolution back down to 640x480 where he feels most comfortable.
Slim Simi
Tuesday, October 17, 2006
My web logs show 56% at 1024x768, 12% at 800x600, the rest at higher than 1024x768*.

(*apart from 0.1% at 640x480!!)
Andy Brice Send private email
Tuesday, October 17, 2006
> It would be good if there was a pie chart out there that
> showed the percentage of users who operate at each
> resolution.

Obviously, this assumes you have a web site and get a reasonably representative sample of your users visiting it, but you can access browser dimensions from JavaScript, which in turn can drive a web bug that'll let you log the reported values for your visitors.  It's not statistically robust, but the information can still be useful.  As in, surprise! 15% of the people on your intranet are still running at 640x480, and double-surprise! most of the requests at that resolution are coming out of the senior excecutive team's IP space. :-)
Lazlo Send private email
Tuesday, October 17, 2006
Google Analytics produces exactly the type of pie chart you're looking for. Not only does it give pie charts for screen resolution, but also color depth, operating system (and version), browser (and version), and Java/CLR/Flash installation versions.
BenjiSmith Send private email
Tuesday, October 17, 2006
+1 Google Analytics.

Incidentally, I get about 15% of my customers at 800x600.  That is my target resolution.  The balance are about 83% higher and 2% other (lower, unknown, Googlebot, etc).
Patrick McKenzie Send private email
Wednesday, October 18, 2006
Another vote for 1024x768 ( ). Also another vote to be workable at 640x480 if your app might be used under certain circumstances ( ). Finally, 1024x768 is only valid if you assume the user will only use one window at a time, both within you app and between your app and other apps. Go smaller if the task calls for frequent switching between windows (e.g., for comparing, referencing, copy and pasting). The Help window should often be narrower for example.
Michael Zuschlag Send private email
Wednesday, October 18, 2006
I'll reiterate my point for clarity.

Statistics are great... if they are of your target market.  Knowing that 56% of your users are using 1024x768 is great if you sample your target market.

If you sample MY target market, then use those statistics, then your shooting yourself in the foot.

Chances are, you can use the statistics from your sales site to get an idea of the market your working with.  Your best approach is to write a statistics collector for your application, and send that back to your server for analysis. (Be sure to get user approval though).

One company I worked for did that with their flagship product.  It made decisions like this much easier.  We had hard data to back up why we should drop Win95, or drop 640x480 and so forth.
Eric D. Burdo Send private email
Wednesday, October 18, 2006
There are a lot more people than you might think who use 800 * 600, not because its the max their screen supports, but because they no longer have the best eyesight and its the easiest way to ensure that the writing is big enough to read without getting a headache.
Wednesday, October 18, 2006
"...the writing is big enough to read without getting a headache."

I think this is a very valid point, but I think that speaks more to the GUI itself rather than the dimensions of the window.

For example, a music player really only needs some way of conveniently selecting a song and the standard play and pause buttons. Tag info and other metadata such as the audio encoding format really belongs in a separate window. This is an overly simplified example, but the point is that you don't need to have everything out there all at once.

If your application is such that you do need to display a lot of information all at the same time, then your target audience is already probably used to higher resolutions or smaller font sizes.
Wednesday, October 18, 2006
If the user changes teh Font Size (DPI) setting in Vista, all of your windows will be enlarged. For example if they choose 120 dpi instead of teh default 96 dpi, then Vista will automatically enlarge all of your pixels by 25%.

By default, Vista will route your graphics output to an off-screen buffer and then scale up the pixel image to the user's desired DPI setting. This results ni slightly fuzzy output.

The preferred solution is to call SetProcessDPIAware (defined only in Vista) and then perform your own scaling in your code. This results in razor sharp output, and I suspect that it is faster as well.

None of this applies if the user leaves the DPI setting at 96 DPI. But some companies are now selling flat panel monitors with actual pixel densities of 200 dpi. If Vista didn't scale your output and you didn't do it yourself (DPI Aware), then the user woudl be seeing windows the size of postage stamps on these new monitors.

Anyway, my point is that you can no longer think in terms of how many pixels the user's screen has. If the user chooses to enlarge their output by selecting a DPI value > 96 dpi, then that is like having fewer pixels on which to draw. If your program draws a line that is 96 pixels long, and the user has selected 120 DPI, then Vista will lengthen that line to 120 pixels on the screen.

Another reason why someone might choose a higher DPI setting is to compensate for poor vision.

In Vista, right click the desktop. Then select Personalize from the popup menu. On the left hand side you will see an option called "Adjust Font Size (DPI)". That's how you change the DPI value. It would be a good idea to test your application at various DPI settings because chances are some of your users will select >96 dpi on their systems.
Thursday, October 19, 2006
Google Analytics produces exactly the type of pie chart you're looking for.

Unfortunatelly you need 1024X768 to view it properly:(
Steve Prefontaine
Thursday, October 19, 2006
To my mind it should work correctly for 800 x 600 VGA and ideally autoadjust for larger sizes in a sane way.
Thursday, October 19, 2006
Our app dynamically resizes to whatever the screen is, although I design for 600x800. (It can zoom down to 640x480 but doesn't look as good.)

This is particularly helpful with our mostly older customers, especially as they move to LCD screens with really high native resolution.
Mr. Analogy Send private email
Saturday, October 21, 2006
As a guy who runs a laptop at 1920 x 1200, it's become my pet peave when someone designs an app that doesn't scale well to odd resolutions or doesn't support some measure of scaling using the DPI settings in windows.

So, keep guys like me in mind...
Albert A. Borkowski
Tuesday, October 24, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz