3 ms·
Some investment in good UI is certainly nice. But it may not be clear to non-programmers just how much work good UIs can be (so it should be no surprise if vol
by makecheck 15y ago
Some investment in good UI is certainly nice. But it may not be clear to non-programmers just how much work good UIs can be (so it should be no surprise if volunteer projects don't spend the time).
There are some fairly obvious tasks, like artwork and putting some thought into what the behaviors should be. There are less obvious things like the fact that huge side effects often pop up.
How much time will you spend on artwork? Every version of Mac OS X looks different, so your custom widget may have 4 different looks and you just know you'll need a 5th next year. Maybe it's a cross-platform program. Maybe the entire thing needs to change depending on where in the world it will be used. And this doesn't even begin to look into issues with programming images (e.g. tracking the mouse inside odd shapes or figuring out how to render things at different window sizes).
Setting UI behavior is also deceptively simple. It can take a very long time to be sure that you've thought of everything even if you're reproducing a variation of UI that's pretty standard already. You often interact with existing things, e.g. a window manager or mouse event system, and you can be seriously screwed if you find a deficiency in a dependency.
What about when your entire framework breaks because you need a customization? (This seems to happen in Cocoa all the time.) For example, guess what: customizable toolbars and resize-from-any-edge come "for free" in standard windows but they are completely unavailable for custom windows. Some changes can look simple on paper and explode when you actually try to implement them. Nothing ruins a weekend like discovering that a simple change would break all kinds of tangentially-related UI elements that were already working. So what do you do...recreate half the OS yourself just so one piece of UI can be a little more interesting or appropriate to a task?