My paint icons in 16bit colour are the bestest ever.
Android's latest incarnation has come with an unexpected bonus, a design guide to help developers polish their apps, and add some much-needed consistency to the platform. The guide comes in the form of a website. Matias Duarte, head of user experience at Android, talking to Wired, describes it as "the second part of Ice Cream …
My paint icons in 16bit colour are the bestest ever.
Bill Blass: Style is primarily a matter of instinct.
I wouldn't say style can be learned in the same way you learn a language but guidelines can be taught and the subject practiced until it becomes honed.
But one can at least take steps to ensure that the user interface you are creating is not actively hostile, or just plain crap.
It depends what you mean by "style".
Visual aesthetics are very much a matter of instinct, although I think it's possible for anyone to learn some basic rules that can help avoid extreme ugliness.
Usability is more a matter of empirical science: there's no elegant mathematical proof you can construct in a void to show one design is better than another. It always comes down to putting the program in front of some representative users and seeing what actually happens.
Before you know it, there'll be tons of yummy looking fake aps and Malware on the Android market.
Hooray for progress!
If the photo in Wired is any indication, I just hope Duarte's UI design skills are better than his fashion sense!
They really should have put this in place from the get go. Apple have their HIG document and will reject your Apple if you don't follow it closely enough. That may be a bit draconian, but it serves a purpose.
Putting out a website now with these ideas on is a bit late. It's going to be ignored by the majority of developers I expect. If it had been there at the start, developers would have gotten used to referring to it as part of their dev cycle.
Do they actually reject based on this? Or is this HIG document just so horribly incomplete that no one can make a useable app based around it.
I have an iPad2 and one thing that I have noticed, is that from app to app the interfaces are wildly inconsistent. Even Apple's own applications are inconsistent in places. Up until now I have mostly blamed app developers, with a little ire to Apple for not enforcing UI consistency. Now that you tell me the ARE supposed to be enforcing consistency, I'm far more annoyed at them.
To put it lightly, Apple's track record here is abysmal. I can't imagine Google's will be worse enough to matter.
The HIG are just that--guidelines. They don't tell you exactly how to make every kind of app. (Why don't you look at them online if you have questions about them?)
Apple does occasionally reject apps for egregious violations of the HIG. Of course they don't review every app against every single one of their HIG, many of which are subjective anyway.
It's interesting that people constantly gripe about Apple being a walled garden, dictatorship, controlling, etc., and now you are complaining that they are not controlling enough. They really can't win.
Apple's walled garden means that we cannot install applications from outside their store. Everything HAS to be signed off and approved by Apple. It is not MY device to do with it as I see fit, it is APPLE's device to dictate to me how I will use (at least this seems to be Apple's position). Yes, I think that's a fair complaint. If i want to install apps from Amazon's store or malware.ru's store that should be my prerogative.
The first complaint makes the second MORE valid not less. Apple runs there store like a true orwellian regime, a la "Animal Farm." Rules are applied haphazardly, and seem to be applied with intents differing then obvious reason for the rule.
NT, means No Text.
Android has always had design guidelines http://developer.android.com/guide/practices/ui_guidelines/index.html
They may not have had a dedicated website or be as comprehensive but they've been there since 1.5 at least.
This is just an evolution of it (a good one) but not brand new.
And all programmers who write anything at all that has to interact with a user (even a techy) should read "Gui Bloopers Don'ts and Do's" by Jeff Johnson
Thanks for the advice, I'll probably get myself a copy! On the same subject, Pragmatic Programmers also have an interesting title: http://pragprog.com/book/bhgwad/web-design-for-developers
As long as we're making suggestions, I highly recommend the newsletter Alertbox, which is online here:
Although its biggest focus is Web usability, there's a lot of material in there which applies to any kind of computing context.
Yeah seems pretty sensible and all but the whole idea that the ability to program and the ability to make decent UI are mutually exclusive is a myth.
The real reason programmers aren't "good" at UI is that it is boring and our time is better used elsewhere so when we are forced to do it we resent it. There are also a lot of developers who just have no pride in their work and really don't care about users of their systems. Simply stopping and thinking "would I want to do this if I were using it" never occurs to them. See pretty much every 2011 game UI for evidence of that (I'm looking at you Bethesda and Volition).
You're doing it wrong.
More generally, you need to live with nongratifying jobs.
I would find implementing somebody else's poorly designed UI with no say in how it looks and works boring. But then again Interaction Design is an area of design that's always interested me, and I am always trying to push the boundaries of efficiency and elegance in any user interface I work on.
My recommended reading is Designing Visual Interfaces by Kevin Mullet: http://tinyurl.com/2g5lhk
Working for various large IT firms on both back and front ends (ooer) I often found poor UI design excused with the 'less important, too boring' etc excuses. But good, elegant design is intrinsically fascinating and I do find it irritating that UI design specialisation is seen as the poor relation of app development.
As a programmer and, at times, designer, I disagree with you. Most developers think it's boring because they do know how to do it, and thus are not bothered to understand its intricacies.
I see it all the time at the various places I've worked at: when given the chance, a typical developer with apathy towards design would end up with something horrendously complex and unwieldy. For instance, on this particular application, an otherwise brilliant programmer took the data model literally, and created a form that contained a label and field for each entity attribute, just one below the other. He even made a direct translation between data-types and field control without regard to actual user workflows or usability.
No wonder people like him later decry that task as "boring."
There is no fun in creating repetitive tasks w/o any logic behind. It's always "easy" to build an UI even with very fancy layout managers/schemes. So, it's considered tripe.
The UI is always event->process... and single threaded. Most developers (can) do their stuff via plain old command interface and find it useful. Heck, coding, itself, is mostly plain text. A developer may appreciate a good IDE w/ good debugging capabilities but not the fluffy/glossy UI. It takes an artist for the latter.
Also, like mentioned, there is no pride in building any UI, it's still trivial to program and many developers have started doing such stuff: simple games, simple programs with a lot of visual controls. True, managers/customers may notice and like that UI thing but they understand nothing anyways.
The issue is not related to lack of communication or social skills at all. I guess it's sorta myth developers are socially inept.
I agree, devs can definitely do UI. Making sweeping generalizations about devs is worthless and offensive. Might as well say "women can't do UI" or similar.
Despite what some (many?) people seem to think, devs are not all the same. It's not like there's just one way to write code and we're all equally good at it. A dev with a good sense of design and style will write beautiful code and also design beautiful UI.
If you take any given job, there are people out there who do that job poorly. Same with dev, except maybe moreso. If you want to be a dentist you have to go to an accredited school for years and become certified and licensed, whereas unfortunately there are many people out there who know the basics of HTML and call themselves "devs." But just because there are a bunch of sub-par devs out there writing bad code and making UI doesn't mean we should all be judged accordingly.
Most of linux seems to suffer this problem. Computing - by geeks for geeks, rather than by geeks for everyone.
Though I don't disagree. KDE and GNOME seem to continue to stride forwards (even if toward the wrong targets in the opinion of some longtime users) but many of the applications commonly associated with the Linux desktop, like GIMP, OpenOffice and Inkscape, continue to look and act like Windows 3.1 refugees that got the usability wrong in the first place.
And the world of Internet discourse then seems to divide into (i) those that agree and therefore conclude that all Linux users must be stupid; and (ii) those that argue that if you're so brilliant then you can fix it yourself, and why don't you just clear off and buy a Mac if all you care about is shininess anyway? So it's difficult to have a rational conversation about it.
I've got to disagree there. For all the flack Linux gets for 'bad UI' I find a lot of the UI in Linux to be far and away better than Windows or OSX. A lot of UI (not all, granted) is about asthetics, and asthetics are all about personal preferance, so there's a lot to be said for a system that offers a couple dozen different UIs and the ability to choose between them. Some of them are geeky as hell, but some of them are just plain easy to use. My wife swears up and down that Fluxbox is easier to use than anything else she's ever seen (she actually says 'Linux' rather than 'Fluxbox' because her only experience with Linux are systems I've set up and she doesn't know any better, but meh).
"so there's a lot to be said for a system that offers a couple dozen different UIs"
.. and this is why we fail.
Excellent idea. Shame the web site gives a poor user experience when viewed via Google's own Chrome browser on Linux due to a failure to consider size of font when inserting alternatively styled text...
"The lack of social skills which makes one so good at working with computers"... I'm not sure there's actually a causal relationship there, you know.
Does this guide relate to Android as a whole, or just Ice Cream Sandwich? Because if it's the latter, chances are it'll be at least a year before the average user is running an OS sufficiently advanced to see the benefits...
Just Ice Cream Sandwich. And given the rate which at 3.x wasn't adopted, I think "at least a year" sounds awfully optimistic.
>The lack of social skills which makes one so good at working with computers
@"But programmers are notoriously bad at design."
Not all programmers. Some doctors are arrogantly useless at talking to people. Some taxi drivers don't know where the hell they are going. And so it is with every profession. There are good people and bad people in every profession.
@"The lack of social skills which makes one so good at working with computers often renders one equivalently incapable of designing competent user interfaces"
My first response is ... [Citation needed]
For a start that "social skills" bullshit is a blatant stereotype. As for trying to associate that with being incapable to design something well, that is ridiculous.
Anyone who has managed teams of programmers knows its far more like herding cats. They each have their own individual minds and ideas about what should be done. That is why consistency on a platforms can diverge. That is why implementing standards is important to achieving consistency.
WOW! You really do blabber some bull.
If you really think iOS is stylish, you have no idea what style is!
iOS is so simple and shiny, no wonder the retarded are attracted to it.
So to turn your "argument" on its head, if an interface if difficult to use and dull as a butter knife, then the non-retarded will flock to use whatever device uses it.
Go back to your Command Line because what you have spouted there is complete and utter shite.
Suckage at design has nothing to do with social skills-- it starts with the assumption that the programmer knows the task and the context in which it is performed as well as the user does, which is hardly ever true, even when the intended audience is other programmers.
Now, once you're past that and trying to do proper user studies, *then* bad social skills can screw things up. But most of the IT world hasn't even taken that first step yet.
...they weren't put up by someone who thought black and light-blue text on murky gray was an ideal combination for readability.
...one of the exciting new features highlighted for Android 4.0 wasn't a major mistake. (Long press changed from contextual action to selecting items-- changing the behavior of an action after users have an extablished meaning for it is one of the canonical, evergreen Bad Ideas of design.)
... they weren't full of exhortations to not try to make your app work the way it would on "other platforms". Having things work the same regardless of context is something users really like.
Bonus WTF: See how long it takes you to find a picture of a person in the example views who is either non-white or non-male. Yeah, I know, demographics of the people likely to read that site and all, but still, kind of creepy when you start noticing it.
"Don't Make Me Think" should be required reading for anyone in UI design.
Simply put iOS beats ICS like a redheaded stepchild. Just try looking at the email clients on the two systems - the iOS client just works while the ICS client works just ... unless you're trying to connect to Exchange or look at multiple calendars, or notes (what notes?) ... and the sad thing is that ICS is so much better than Honeycomb.
The ideal design method is to have a Designer who knows how to program concentrate on the GUI, and a separate Programmer write the program under the Designers direction. It's the interaction between the two that makes a great program ... not having a better trained programmer.
"The ideal design method is to have a Designer who knows how to program concentrate on the GUI, and a separate Programmer write the program under the Designers direction. It's the interaction between the two that makes a great program ... not having a better trained programmer"
You forgot to include the *real people* who know nothing about the technical stuff. They will confirm whether or not your design concept (or better: prototype) is usable. And if not, you had better start over again.
Otherwise I do agree. Programmers (and sysadmins like me) often fail to speak or think in layman's terms. The outcome may be great from a technical point of view, but rubbish in terms of usability.
REPLY / REPORT
- need to be even BIGGER, how else can I quickly report all the people who downvote me?
In the early nineties Acorn Computers LTD (yes those folks with the BBC micro, Archimedes whom also invented that ARM processor) had a terriffic "style guide" included with the renowned RISC OS programmers Reference Manual (a hefty pack of guides into RISC OS programming). Accompanied by template designs and UI tools on disc to make life easier. The advantage was that RISC OS was brilliantly consistent across all the apps both company- and home-written efforts.
Both such books and that effort is something that should be compulsory for EVERY OS creator. And indeed from the start (as is mentioned in the article).
They all should better look back and learn from the past. But oddly all the ppl ru(i)ning companies these days are clucking chickens running around like a beheaded turkey. All they can think of is which company to sue next.
Would like to see a little more regulation on the market, a little bit more akin to the Appstore just to crack down on rogue apps, with design improvements could turn out quite nicely
a good looking app. makes a o/s look better to
After seeing the new GMail interface, I'm not sure we can trust Google for style...