In our earlier blog, we provided some useful training resources on How can desktop/web developers become mobile application developers. This blog is more focused on key factors developers need to consider before building mobile applications.
The Mobile Mindset – Developing for a mobile device platform is not just a technology change; it requires a different mindset and new design skills. Mentioned in this article are six important factors indicated by Rinish Nalini – CTO, RapidValue Solutions, which developers should consider for building mobile applications. These factors are inherent to smart phones and other mobile devices which include: Device fragmentation, Screen size, Screen density, User experience, Memory capacity and Battery life.
1. Multiple Platforms and Devices
Traditional desktop and laptop PCs are Windows-based with a standard screen size, features and form factor. The mobile landscape is much more fragmented, with four main platforms (Android, iOS, Windows Phone and BlackBerry) that are continually evolving.
Accordingly, building mobile applications requires more factors to consider when planning, including which device platform to build first, what mobile technology option to choose, what capabilities should the mobile phone support, and the need for a long-term roadmap with deployment on additional, next platforms. In contrast to traditional Windows-based desktop development, mobile developers need to think about creating application code for multiple platforms-Android, Windows Phone, iPhone and BlackBerry. Designing an application that is optimized for various devices with different screen densities and screen sizes is even more challenging.
2. Screen Size
Applications designed for a desktop or laptop client work with a screen size that far exceeds that of mobile devices. How to design for a device that fits in your pocket requires simplification and a rethink about navigation. While a desktop application may have tabs, options and links on all sides of the screen and in-line with text, for mobile you need to concentrate on the immediate function, reducing the number of options to only those needed for the immediate task or feature.
3. User Interaction
Instead of a mouse and keyboard, there is a quite different mode for user input: touch. Even a single touch can involve a variety of interactions, including single-tap, double-tap, long touch, move and fling. All these actions have to be captured.Desktop PCs and laptops provide keyboards for data entry, allowing comfortable, fast typing with both hands and all fingers. Since mobile devices do not have that capability, even those with keyboards, manual data entry should be minimized. Instead, wherever possible, provide options for selecting instead of asking for specifics through data entry. Unlike clicking links with a mouse, tapping links using your fingers on a touchscreen mobile device is not easy. Users can easily activate a link they did not intend to tap and accidentally land on an undesired page. Bigger bars, tabs or buttons let users tap with more precision.
4. Screen Density
Devices available from different manufacturers vary from 120 dpi for the lower-end HTC Tattoo / Wildfire and 240 dpi for the higher end Droid series—a difference of 100% in screen density. This means that using hardcoded values for pixels and a single set of images will lead to one of two things on a higher end phone: either your UI will be up-scaled and fuzzy, or the controls will be too small to allow comfortable targeting with a finger. Therefore you need to bundle multiple
resolution images and use display metrics to scale your custom drawing code.
5. Integration with Phone Functions
Smart phones are sophisticated communication devices. Making phone calls is their most basic function. While mobile platforms place many limitations on design and content, they also open up new opportunities that traditional desktops cannot provide. For example, integration with phone functions such as direct calling and text messaging lets users select a phone number from a list, then call or text that number without having to type it.
Another example: capabilities such as GPS can be integrated into location based services like mobile search. Many mobile devices can automatically detect user presence and provide them with local search results, creating powerful opportunities for businesses to promote their offerings based on a person’s proximity to their place of business and their immediate intent.
6. Limited CPU/Memory/Battery Resources
Mobile devices lack the computing power and memory capacity of most desktop and server systems. Developers need to write algorithms and perform code optimization to support the mobile device capacity. For example, 1 GB of memory is a constraint in mobile phones which is not found in today’s desktop applications. That’s not quite the same as far as the phones go. Devices available from different manufacturers vary from 120 dpi for the lower-end HTC Tattoo / Wildfire and 240 dpi for the higher end Droid series—a difference of 100% in screen density. This means that using hardcoded values for pixels and a single set of images will lead to one of two things on a higher end phone: either your UI will be up-scaled and fuzzy, or the controls will be too small to allow comfortable targeting with a finger. Therefore you need to bundle multiple resolution images and use display metrics to scale your custom drawing code.
Another issue that desktop/web applications do not have to address is battery life. With desktop/web applications, you can have complex algorithms running on the server because there are no battery constraints. But when it comes to mobile, a complex algorithm or sub-optimal code will drain the battery quickly. When designing algorithms, developers need to think about battery consumption, and design for optimal usage.
To know more, download the Whitepaper – Making the transition from desktop/web application development to mobile application development by RapidValue Solutions