The massive shift in consumer behavior bought on by the disruptive nature of SMAC, and the pervasive influence of mobile computing devices are forcing enterprises to reposition their current business applications for the new technology landscape. Almost every major business application has either released a ‘mobile version’ or is considering building a ‘mobile app’ for its product/service.
Over the years, we have seen a gradual evolution of software delivery and deployment from an on-premises installation to a web-enabled mode, and increasingly to a cloud-enabled SaaS model. Each technology paradigm shift was associated with unique challenges in the way the software applications were designed, built, accessed, and supported.
The mobile landscape presents a unique set of challenges and opportunities for enterprises. In this blog, we will endeavor to present a concise overview of the technology choices, and engineering challenges that an enterprise must consider prior to embarking on the mobile journey. We also welcome you to lookup A mobile app development primer , a nice whitepaper touching on key elements of mobile app development.
With the increasing maturity of the mobile application market, enterprises are carefully evaluating the various strategic aspects crucial for long-term support and maintenance of the mobile apps.
User Centric design
User experience (UX) is an extremely crucial consideration in the design, and development of mobile applications. UX in mobile apps is much more than merely user experience, and extends to user input mechanisms and user interaction design, specifically with mobile devices in perspective. As opposed to conventional software applications accessed through non-mobile computing devices, the display area is extremely limited on mobile devices, severely restricting the amount of data displayed. Deep insights into the user behavior, limitations of the display ‘real estate’, and a sophisticated understanding of the user interaction with the mobile device should influence the design of the mobile application. It has been conclusively proven that a badly designed mobile app can put off the user leading to loss of business, where as a well designed app will lead to increased business!
Rapid response time, and stable performance without crashing are the key performance metrics by which the users rank a mobile app. Performance engineering aspects must influence the design of the mobile application and should not be viewed as an afterthought discovered during development or testing phases.
One of the most important considerations an enterprise will face is the choice of technology platform or mobile OS for which the application will be developed. There is nothing like a perfect choice and there are pros and cons associated with the various implementation choices available, which are briefly described below:
A ‘native’ app is an application developed for a specific mobile operating system or device, and takes advantage of the interfaces or APIs exposed by the devices’ OS. The advantages of a ‘native app’ is that as it is written for a specific processor, it can fully leverage the features and services specific for the device or OS, where as the flip side is that the app wont be portable to any other mobile OS. For example, a ‘native app’ designed for Android can’t be ported to iOS or Windows Mobile, and vice versa. Therefore, an enterprise has to be absolutely sure about the predominant mode of its users’ mobile access, before embarking on a ‘native app’ development, which could be a very expensive proposition.
(ii) Mobile Web
Most of the new generation mobile devices and smart phones are equipped with a pre-installed mobile browser, which functions to a large extent like standard web browsers, supporting applications developed using Java Script and HTML5. Applications that are mobile web-based are OS independent, and can run on multiple mobile browsers on different devices. For an enterprise with prior engineering skills in developing conventional web applications, transition to mobile browser based app development is fairly easy. Disadvantage of mobile web applications is that they will be incapable of utilizing the device/OS specific features and services, and could lag behind a well-designed native app. Sometimes business considerations also play an important role in implementation choice, as with a native app you will have to go through an ‘app store’, where as with mobile web app, the user can directly access your app without any middlemen, making it easy to support, update, and maintain.
Finally, an enterprise must choose its implementation platform that is best suited for its application requirements and business landscape, which will further influence the choice of development tools and practices.