Tuesday, December 27, 2011

GUIs? How Do They Work?

So I've been around a computer for most of my life and I've seen some pretty bad designs (cue www.timecube.com guy here), but one thing that has interest me is GUI design. I've spent 4 years in college and only had about 1 class where a GUI was required. Granted, computer science isn't about GUI programming but still, I was ill prepared to start designing programs that other people would be using.
When I started to program for android, I was a little taken aback by the XML approach to GUI programming that I had to use and searched for something that would give me a more Visual C++ type feel that I was use to in college. I found some (java warning) but I couldn't get it to do exactly what I wanted so I dug into the XML and got it under control -- but what to do with it? How should I design my app to be most usable? These are the questions I have to answer to make my app successful.

Looking back there have been some interesting Human Interface Guidelines (HIG) that have been used to try to steer people in the right direction in terms of how the look and feel of an application should be. One that comes to mind is one from the GNOME HIG. It suggested that Buttons shouldn't be labeled "OK" and "Cancel" but instead use verbs to clarify what the user is about to do.
Some people see this as putting a bounding box on their creativity and prefer to create their own way of doing things or making an app "skinnable" which I think is horrible. It breaks consistency with everything else and a lot of the time it leaves the default butt-ugly with the excuse "If they don't like it, they can change it".

No.

I don't wanna take time to find and change a skin just because you wanted to make your app extendable. Pick intelligent defaults is all I'm saying.

Another thing you have to think about these days is making an interface that is usable on many different devices. between androidx86, Chinese tablets, and car makers, you can never be sure where your app will be deployed and how it will look. Luckily the android sdk makes the experience a bit more predictable by allowing multiple versions of resources to be uploaded and letting the device choose which one to display.  Also, you specify text fonts and layout sizes in em instead of cm or px. You can still use those units but they don't scale in to different size devices. There are a lot more guidelines on how to design your app on android and they can be found Here.

Looking at it all, it can be a bit overwhelming to try to get it all right at first, that's why I'm focusing on functionally first then I can devote all my time into usability

21 comments:

  1. Nice post following! perhaps you will like my blogs!!!

    ReplyDelete
  2. once you get it, it's very cool!
    better than J2ME at least, lol

    ReplyDelete
  3. Awesome blog! I might just buy me one!

    ReplyDelete
  4. I've been thinking about this as a possible career choice, seeing as how apps are only getting more popular, and this kind of insight could give me my answer. Thanks!

    ReplyDelete
  5. over my head but cool nonetheless

    ReplyDelete
  6. nice long post. this looks lke it took some effort, i appreciate it. and agree for the most part with the things you said

    ReplyDelete
  7. I love GUI i dont think i can survive terminal.

    ReplyDelete
  8. Could you please explain us how magnets work?

    ReplyDelete
  9. Im android user but i cant develop any app :D

    ReplyDelete
  10. Wow, nice post man.

    ReplyDelete
  11. I literally have no idea whats going on here hahaa

    ReplyDelete
  12. Oh man, this is why I gave up on Programming.

    ReplyDelete
  13. Programming is way too intense for my tiny brain.

    ReplyDelete
  14. YES! I'm so glad I found this blog, I love reading about this stuff!

    ReplyDelete
  15. function vs form? haha. thats an old question. Man. I'm learning so much by what you are putting out. Keep it coming, keep it basic so I can follow along, haha. cause I'm dumb

    ReplyDelete
  16. This is very confusing, but i like learning new stuff!

    ReplyDelete