Following on from last week’s app discussion, there are a number of factors that need to be taken into account when developing mobile web apps. These apps are completely different to the development of old native apps where developers could focus resources on building an application for one particular platform. When building web apps, we need to consider the following:
Various platforms. There are already a number of big players (including Android, iOS, Blackberry, Windows Mobile, WebOS…) and plenty of smaller ones. Developers need to make sure not only that the web app will work across all these platforms but that usage is comparable in look and feel to native apps running on those platforms.
Screen size. Different devices come in varying screen sizes, regardless of the platform. There are desktop and tablets with high resolution, smartphones with big touch screens, and ordinary mobile phones with small screens and traditional keypads. Developers need to ensure the app will have the same functionality on all these different devices with the best layout for each screen size. It is also important to take into account both horizontal and vertical views.
Interaction styles. There are several ways users can interact with web apps. Desktops need a mouse and keyboard, (most) mobiles will have a keypad, and modern smartphones will work via a touchscreen. As mentioned in last week’s blog, touch is the most natural method for humans and apps should use a variety of touch combinations to give the best user experience possible. However, the app should also offer the same functionality when running on devices controlled by mouse or keypad.
Speed. When building web apps developers need to be aware that people expect the web apps to work as fast as the native apps. Speed is crucial in today’s fast-paced society and mobile apps are no exception.
Working offline or with poor connection. Web apps should always work, regardless of dodgy internet connections. Developers need to implement a variety of caching solutions to cover situations where there may be no or bad internet connectivity.
When building a web application, which we expect to work across various devices, we need to build an interface on top of the core of the application. This interface needs to react and render various content depending on which type of the device the user is using. Below are the two most common technologies developers can use to help achieve this.
HTML5, CSS & JS. Developers can use HTML5 when building a web app, which has plenty of great features to help tackle the problems above.
Mobile JS frameworks. Developers can use some great JavaScript frameworks (like jQuery Mobile or SenchaTouch), which can turn existing web apps based on HTML into great mobile apps working across a range of modern platforms.
For those developers looking for more information, the following links will direct you to a number of great tools and libraries: