It's been one of my major pet peeves on both Android and iOS: the total and utter lack of consistency. Applications - whether first party or third party - all seem to live on islands, doing their own thing, making their own design choices regarding basic UI interactions, developing their own non-standard buttons and controls. Consistency died five years ago, and nobody seems to care but me.

I never really paid attention to UI design until I started reading OSNews. Thom, your desire of UI design has inspired me to think more about user experience as a developer and I thank you for that. I think there are a lot of real-word issues that indirectly affect UI design in addition to what you are describing. I am sure a lot of these issues are inferred from your article, but I would like to put it out there to see what any other developers might say.

There are a lot of designers out there...but very few UI designers. I think when companies hire a designer they are looking for someone to make a pretty app and not provide a good UI experience. So instead of looking for someone who is qualified in UI design, they instead look for someone who has an art degree, a pretty portfolio, and MAYBE knows something about UI design in general. Nearly all the designers/UI designers I have worked with were never trained specifically in UI design, but Advertising Design. There are also a lot of times when the Designer is just the person who came up with the idea for the app as well or that person has the most say in the design.

I have not done much research, so this is all anecdotal, but it also seems to me UI Design education programs (or students of) are very rare relative to the amount of apps being marketed. It's very rare to find designers whose sole focus is UI Design, 'Human Interaction Design', UX Design, etc.. Perhaps its not rare as much as it's just the ratio of real UI designers to app developers is very low.

Another big fault is that in a lot of development shops, the 'Designer' is/was a very experienced developer who is now doing design and/or architecting. Again, in my experience, this has been very black and white; either the 'Designer' is very good or not so good. Regardless, it just seems to me that once you have a deep understanding of what goes on behind the curtain, you have an even more challenging time designing the whole entire show. I just think your focus is more on engineering with parts of a program than interacting with a person. Some developers get over this hurdle well whereas others don't.

Although I have only developed a handful of mobile apps, reading your article made me realize something that I feel every mobile developer probably struggles with. When we are coding our app, we are going back and forth between our code and the app on the device (virtual or physical). That's it. We're not spending time in any other area of the OS worrying about integration. When Q&A get's it, they spend all of their time inside the app only. When the designer is designing, he/she is looking at a screen of solely that App and nothing else. It's like their canvas. They don't think about how it might look in the Gallery, so-to-speak.

I guess what I am trying to say is when developing an app, the app development process is never thought on the terms of "Ok we are developing an iOS app" and really absorbing that idea. It's more like "Ok we've got this app and we have to get it out on the most popular platform that's out there right now. Today that platform is: [insert OS/web here] and this app needs to be out the door yesterday."

Anyhow, this is all my anecdotal experience/opinion. I appreciate all the designers I've worked with and please know this is just from the point of view of a lowly developer. I have never been in the position of designer and don't know what are all the challenges they must face. I am curious to hear from any other developer. Overall though I really appreciate your passion for UI Design and hope more people pick it up.

I have never been in the position of designer and don't know what are all the challenges they must face. I am curious to hear from any other developer.

Developers are generally the people who write the actual functionality of the software, whereas designers are the people whose job it is to figure out which functionality should be exposed where and how. Some developers make fod good designers too, but most often than not the thing is that coders just don't have the required eye for visual design. That's why there are actual UI guidelines written for e.g. both KDE and GNOME that go to quite extreme lengths to explain how an application should present itself and its functionality in order not to feel out-of-place on the desktop. Such UI guidelines are what I personally wish every platform would mandate developers to adhere to.

As a developer you might not always have a designer at hand, so there are a few things to keep in mind: separate all -- or atleast most -- of your functions to obtaining/generating content/data - ones and to displaying the said content/data - ones, and then try to imagine flowcharts of how one would accomplish this or that task; if a user is in the 'default' view what are the steps needed, can these steps be simplified, are these steps ones that are often needed and should therefore be prominently present in the UI, what if the user not in the 'default' view, and so on. It may feel boring and tiresome at first if you haven't done that before, but you'll get used to it and eventually you'll notice you're already doing these flowcharts in your head at the same time as you're doing the code itself, too.