Why is UI programming so time consuming, and what can you do to mitigate this?


In my experience, UI programming is very time consuming, expensive (designers, graphics, etc) and error prone – and by definition UI bugs or glitches are very visible embarasing.

What do you do to mitigate this problem?

Do you know of a solution that can automatically convert an API to a user interface (preferably a Web user interface?).

Probably something like a JMX console

  • with good defaults
  • can be tweaked with css
  • where fields can be configured to be radio button or drop down list, text field or text area, etc
  • localizable
  • etc

Best Solution

Developing UI is time consuming and error-prone because it involves design. Not just visual or sound design, but more importantly interaction design. A good API is always interaction model neutral, meaning it puts minimal constraints on actual workflow, localisation and info representation. The main driver behind this is encapsulation and code re-use.

As a result it is impossible to extract enough information from API alone to construct a good user interface tailored to a specific case of API use.

However there are UI generators that normally produce CRUD screens based on a given API. Needless to say that such generated UI's are not very well-suited for frequent users with demands for higher UI efficiency, nor are they particularly easy to learn in case of a larger system since they don't really communicate system image or interaction sequence well.

It takes a lot of effort to create a good UI because it needs to be designed according to specific user needs and not because of some mundane API-UI conversion task that can be fully automated.

To speed the process of building UI up and mitigate risks it is possible to suggest either involving UI professionals or learning more about the job yourself. Unfortunatelly, there is no shortcut or magic wand, so to speak that will produce a quality UI based entirely and only on an API without lots of additional info and analysis.

Please also see an excellent question: "Why is good UI design so hard for some developers?" that has some very insightful and valuable answers, specifically: