I would classify software in three categories. All of them are equally important, and even though each of them works as one piece, a real big project requires the three of them. The first is the core software: in a simple word, algorithms. By itself, it is one of the most important things. But, without the other three components, it’s good stuff only for other developers. Second: database. How is the information stored. Again, if not used as a whole with the other components, it’s only good for developers. And third: UI. UI is, at least for users, the most important aspect on every program. You have an ugly UI, your program is “not as good as X program, which is pretty”. You have a great UI although your core is not that good, (most) users don’t care, the UI is great and simple, they can use it without problem.
User Interface is the layer of software with which users interact. It seems the most simple layer (technically speaking), but it is one of the most complex to develop. Why? They say a UI is like a joke: if you need to explain it, it’s probably not good.
UI is categorized in three forms, from more advanced to more natural:
CLI: Command Line Interface. Basically, a terminal in which one types text-only commands.
GUI: Graphic User Interface. This time is visual, but it’s fully digital.
NUI: Natural User Interface. The most natural form of UI. It includes sensors, buttons and other devices that can be physically manipulated by the user.
User Interface Design is an area of the Software development, that emphazises the users needs by the time he/she is implementing the software we developed.
We have seen that, for example, Google and all of the big trademarks have chosen the method of minimize the style of their User interfaces. But first, what exactly is a user interface?
Acording the definition of http://techterms.com:
A user interface, also called a “UI” or simply an “interface,” is the means in which a person controls a software application or hardware device. A good user interface provides a “user-friendly” experience, allowing the user to interact with the software or hardware in a natural and intuitive way.
Yes, there is one keyword “user friendly”. Just imagine for a second your 10 years old son, brother, cousin managing all of those characters in your application, compiling, running and checking for all of the options code style (This doesn´t mean there aren´t boyswho did this), but in general, we need to offer a simple manner for users, to actually use what we develop.
UI has gone as far that hardware applications has also a UI instead they are not as complex as software UI´s (you know, high and low level are always trying to healp the other one).
So lets know what are the fundamentals of designing a UI:
The user is the most important part, so know for whom the Software is oriented to and this way you will know how to make your UI, it different an Android app to play minecraft or something, than a API to connect with your banks accounts.
Use good patterns, you know, if people likes the interface they really are going to use it.
Be coherent about the changes updates and patters you have chosen. If your user sees