User Interface Design ui Notes on UI/UX Design
A user interface is well designed when the program behaves exactly how the user thought it would.

Good UX enhances user engagement, and UX design is the art of creating and maintaining user engagement in software.

Abstractions and Metaphors

When you're using metaphors, it's very helpful if the design obeys the physical laws of the real world object.

Icons As a rule of thumb, they work pretty well for nouns, especially real-world objects, where you can create an icon by making a picture of the thing. But they don't work so well for verbs

Consistency and Familiarity

Consistency is a fundamental principle of good design. Good designers use consistency intelligently, and though it may not show off their creativity as well, in the long run it makes users happier.


Good usability doesn't just mean "usability under the best of circumstances." It means usability under as many adverse circumstances as possible.

Feature Design

Now, instead of thinking about your program like a programmer (in terms of, which features do you need to provide in order to make a card), you're thinking about it like the user, in terms of what activities the user is doing

Usability Testing

A Usability Test Measures Learnability, Not Usability

But to users, a product is a tool used to accomplish some higher-level goal. Those goals are accomplished using the features and capabilities available in the product, but the user’s intention in using the product is to achieve his goals, not to simply employ the product’s features and capabilities.

Responsiveness and Feedback

Consistent, valuable responsiveness builds a sense of confidence in the user and thereby improves engagement, allowing him to focus on achieving his goals rather than fretting over whether each of his actions taken toward that end have been effective.


A heuristic is a technique for finding an approximate solution when classic methods fail to find any exact solution. A good heuristic is obvious, easily undone, and extremely likely to be correct. Other heuristics are annoying.


In general, don't release software in another language without doing a little bit of cultural testing on native speakers.