HTML5 mobile web application design guidelines
Developing applications for mobile devices is quite different from developing websites for desktops and laptops. There are a wide range of mobile devices available with varying screen sizes and processing powers. Mobile devices access the Internet with varying bandwidth; they can be connected to a Wi-Fi network and in an instant they can go to a slow 2G network. All these factors make mobile applications development different from traditional web applications development.
Here are some guidelines which will help developers while building a mobile web application:
- Animations with CSS3 rather than with jQuery: Whenever possible use CSS3 animations as they are handled in the browser natively so that it can make use of the hardware resources thus increasing the performance.
- Responsive design using CSS3 media queries: Mobile devices these days have varying screen sizes and it's a basic expectation that a mobile web app will fit on the screen of the device requesting the application. Responsive designs using CSS3 media queries help the same code base provide an optimal viewing experience on a wide range of devices.
- Use CSS3 gradients instead of images: Using CSS3, we can provide gradients in your web page without using specifically cut images. This helps to preserve bandwidth by not having images travelling over the wire and provides more flexibility on the page design.
- Go for SPA (Single Page Application): SPA (for example, Gmail) provides a quicker and responsive navigational experience to the user. They are distinguished by their ability to redraw any part of the UI without requiring a server roundtrip to retrieve a page. While building mobile applications, go for SPA if it does not complicate your development process. Kendo UI Mobile is an excellent framework to build single page applications as you will see in the future chapters.
- Make full use of offline mode and local data storage: Almost all modern mobile browsers these days support quite a lot of the HTML5 specification, as their update frequency is very high as compared to their desktop counterparts. Although we can safely assume that these features will be available on the mobile browsers, it's a good idea to check whether these features are enabled on the client browser using simple JavaScript conditional statements.