- design UI for a class of device, that include screen size range and input device, examples of class of device:
- desktop computer: keyboard + mouse + screen (ranging from 1024x769 to infinite size)
- mobile phone
- tablet with touch
- tv with remote
Each system can be plugged with a peripherical input device, like a graphic tablet on a desktop, or a keyboard on a tablet. However, this input device gives an improved user experience or provides a specific tool (think of temporarily plugging a keyboard into a tablet for writing a blog entry more quickly), but does not change the application behaviour itself, or the purpose or form factor of a specific device.
- UI can have some dynamic for a certain class of device, but that should not be used to use a UI across class of device.
- It is important to design an application from scratch to create the best possible user experience. Code can often be re-used, but that MUST NOT be the basis for designing the UI. A clear separation between design and implementation is crucial.
- make smart system, but with control, like calligra's toolbox, stack some tools together, if they have a common meaning, like pan and zoom together, or paint tools...
- reducing dockers can transform on popup
- reducing a listview transform it in listview
and that sort of things.
- UI components are exchangeable on different levels (navigation structure, overall UI layout, individual widgets)
- Code re-usability is an implementation goal, design trumps implementation however