Responsive or adaptive design

To be able to suit a wide variety of devices, it normally won't be possible to use a single user interface design. Therefore, some form of adaptation to the current environment will probably be necessary. There are two main schools of thought with regard to adapting to variations in screen and device capability: responsive and adaptive designs. Both aim to provide an appropriate user experience with an interface that feels native to the current device. While these principles currently refer mostly to web application design, they can also be applied to native applications, especially if designing for multiple platforms.

When following adaptive principles, application designers will choose a limited set of device configurations to design for, typically a mobile device (possibly in multiple orientations), a tablet device, and a regular desktop. By designing for these categories, the amount of time spent designing for specific devices is reduced, focusing only on these defined configurations. When focusing on a small number of variations, the design can be perfected for these different use cases, creating a very smooth experience. When implemented this way, an application will detect which category of device it's running on and load the appropriate layout (sometimes this is handled automatically by the framework). This approach has been exemplified by Apple's iOS SDK (user interfaces are defined for iPhone, iPhone Plus, and iPad), the correct user interface will be loaded and a single application can execute with any configuration. The limitation of the adaptive approach is that intermediate devices, ones that are smaller or larger than expected (or with unusual configurations), will probably not look or function as the user may expect.

Responsive design, on the other hand, aims to define a single user interface that responds to the current device configuration. Layouts created in this manner will typically have certain trigger values or inflection points that determine the visibility of elements or the positioning and sizing of items that should always be shown (in CSS, this is usually done with media queries). The responsive technique is becoming more popular in designing websites that wish to provide a good experience on a huge range of different devices; it probably won't provide the perfect user interface that adaptive design aims for, but it does cater for every device from the smallest, least capable to the full desktop experience. This approach maps well to the cross-platform approach that's likely part of the intention of a team developing application GUIs with Go because we don't usually know the devices that our software will be run on ahead of time.

The toolkits explored in this book offer some amount of support for responsive layouts. Grids that lay out the content according to the space available and the screen layout are a good place to start. Some are pushing further into this space by providing semantic layouts that'll adapt correctly to the current device:

An example of a possible responsive layout at three different sizes
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.118.229