Tuesday, 9 February 2016

Mobility Solutions - Development of Hybrid Mobile Applications with HTML

Synopsis
Organizations that are planning mobility initiatives need to address the key needs of manageability, multiplatform support and providing an adaptable and intuitive user engagement while reducing development time and cost. This paper presents a case for the hybrid application approach in addressing these needs.
The main focus of this paper is enumerating key technical considerations that can ease and speed the development process of Hybrid Mobile Applications. These include best practices and tips for the design, development and testing of Hybrid applications.
The goal is to give readers an initial context and practical information for under-standing the unique aspects of hybrid mobile application development including architecture, and key design, development & test considerations like usability, performance and security considerations.

A Case for Hybrid Applications

Mobility – Strategic Needs

In order to understand the demand for a hybrid approach, it's useful to first review the strategic needs impacting manage-ability and cost that Organizations need to address before they invest in building mobile applications.
Manageable Applications: with the emergence of Bring Your Own Device (BYOD) policies organizations must look at reduc-ing the dependency on device specific code by limiting the footprint on the device and look at maintaining a single man-ageable code base on the web. This approach will offer better control and security.
Multiplatform Support: the proliferation of multiple proprietary platforms, devices and technologies has resulted in a ven-dor specific platform dependency (ie) code written for one mobile platform cannot be used on another. This critical draw-back drives up development costs and to address this Organizations should look at a single code base that can work across multiple platforms and devices
Multiplatform support becomes especially important in an enterprise scenario at a time when enterprises are embracing the BYOD concept. Hence the hybrid model is ideally suited for an enterprise with cross platform deployment needs.

Mobile Development Approaches

Broadly speaking there are three mobile development approaches– Native, Mobile Web, and Hybrid.

Introduction to Hybrid Applications

Hybrid apps make it possible to embed web technologies like HTML5, CSS and JavaScript code into the Apple or Android ecosystems thus combining the best elements of native and mobile web apps.
A hybrid app is essentially a web app, built using HTML5 and JavaScript that is then wrapped inside a thin native container that provides access to native platform features like camera, file system, contact list, accelerometer etc. PhoneGap is an example of a popular container for creating hybrid mobile apps.
Native: In this approach, an application is developed using the development tools and Operating System language that the respective platform supports (e.g., Xcode and Objective-C with iOS, Eclipse and Java with Android). Native apps make best use of individual platform SDKs and device features and hence result in the best user experience. However, this ap-proach drives up development costs if multiple platforms need to be supported.
Mobile Web: This approach is based on standard web technologies like HTML, CSS (for presentation) and JavaScript (for interactivity) and it is merely accessing web pages on mobile devices. It is the simplest to build and does not require much investment. However the drawback with this approach is limited user experience and more importantly security limitations and no support for leveraging powerful native device features like camera, GPS, Bluetooth etc.
Hybrid: This is designed to take advantage of both the Native and Mobile Web approaches. It benefits from the versa-tility of web technologies with the combination of powerful device features and SDK. It is well suited for a broad range of applications and can still provide a good user experience.