Best practices for developing mobile cloud apps revealed

Expert Bill Claybrook explains the right way to go about creating mobile cloud applications.

Author's note: In the past, mobile apps have been viewed as either native apps or Web apps. In this article, we include Web apps in the grouping of mobile cloud apps because they run outside the mobile device and have data storage outside the mobile device. The phrase "mobile cloud computing" typically refers to an enterprise cloud computing infrastructure that has been extended to handle mobile devices. Users are provided with data storage and compute processing that reside on a cloud-computing platform rather than on the mobile devices themselves.

When developers build mobile apps, they have the choice of building either apps that are installed and run natively on remote devices (native apps), or those that run in mobile cloud environments (mobile cloud apps). Native apps and mobile cloud apps each have their inherent advantages and disadvantages.

Native apps run on remote devices such as smartphones and tablets and are built specifically for a device and its operating system. Native apps have the ability to leverage device-specific hardware and software, meaning that they can take advantage of the latest technology available on mobile devices, such as GPS, camera, location and locomotion. This can be construed as an advantage for native apps over mobile cloud apps.

Mobile cloud apps run on servers with their data stored in the cloud. Users access the app through a browser window on the device. Mobile cloud apps are generally developed independent of operating systems and can be more robust than native apps because there is more compute power and storage available in the cloud than on the much smaller remote device. Mobile cloud apps present advantages over native apps because security and other management aspects can be more easily centralized.

Here are some best practices to help ensure that the mobile cloud application development process goes as smoothly and successfully as possible:

Develop once, run everywhere

Because many organizations are implementing Bring your own device (BYOD) strategies, it is important to try to design and implement mobile apps that can be built once and run on multiple remote devices regardless of the device's characteristics. Mobile apps developed to run natively only on the targeted devices, requiring the apps to be ported or rewritten to run on another device. Mobile cloud apps run in the cloud and are created independently of operating systems and specific device features. By using various technologies such as HTML5 and mobile enterprise application platforms (MEAPs), mobile cloud apps can be developed and made available for many devices without the need to rewrite the code.

Implement hybrid apps to take advantage of device hardware

Hybrid apps allow mobile cloud apps to take greater advantage of mobile device hardware. With a hybrid mobile app, the user interface to the mobile cloud app appears in a browser window, with a native app wrapped around it to provide access to onboard device functionality that is not available via the browser.

A hybrid app looks to the user like a native app. It is downloaded from an app store, stored on the mobile device and initiated like a native app. But there is a difference from a developer point of view. The developer does not have to rewrite the entire mobile app for each device. Some of the code written in HTML5, CSS and JavaScript is reused across multiple, different mobile devices.

Use technologies such as HTML5 and MEAPs

HTML5 is a set of technologies consisting of CSS3, rules, properties and JavaScript APIs. It simplifies your development cycle by letting you use the same technology stack across multiple devices. You can deploy on more devices more quickly and easily by developing mobile cloud apps instead of native apps for a quickly growing list of mobile devices. HTML5 supports remote device functionality, providing an experience closer to the look and feel of a native app while allowing you to write code once and enable it across various mobile devices. It discovers characteristics of remote devices to present information automatically adjusted to fit the remote device's display size, resolutions, display orientation, height and other unique features.

Not all browsers, smartphones and tablets support all of the HTML5 features, but most of the major browsers support some of them. You should make sure that HTML5 is supported on the browser that you are using.

More on cloud applications

Get tips on improving the interoperability of cloud applications

Find out how to narrow down your choice of cloud tools

Learn more about the dilemma of cloud computing standards

A mobile platform is software that sits between a mobile device and an app. It runs on the mobile cloud and does some tasks specifically for mobile devices, such as converting data into a user-friendly interface and making sure everything fits well on the device's screen. It also has an authentication mechanism that reaches all the way down into the device so that if it is lost or stolen, it can be wiped remotely.

MEAPs allow organizations to deploy mobile apps across a variety of devices by reusing code and without having to implement an app for a specific device. They also allow administrators to selectively run applications natively on the remote device when it is very important to take advantage of key features or when it is difficult to emulate native functionality on a mobile cloud server. A number of MEAP or MEAP-like platforms are available, including Sybase Unwired Platform, WebMobi and Appcelerator Titanium.

Synchronize development and testing

Even though mobile cloud apps run on mobile cloud servers, you should synchronize application development with testing and development done for mobile devices and the technologies used to make mobile cloud apps write once and run everywhere.

The average lifespan of a mobile device is now about one year, and the lifespan of mobile software technologies is even shorter, according to technology firm Lionbridge. This challenging environment requires a new approach to software development and testing. Rather than waiting until the development of a mobile cloud app is complete, app testing needs to be in step with cloud development and device testing in order to detect and correct flaws as early in the project lifecycle as possible.

Take advantage of mobile cloud security

Running security software such as Kaspersky and McAfee and antivirus programs on mobile devices is one of the simplest ways to detect security threats. But mobile devices have limited power and processing capabilities so protecting them from threats is difficult. For instance, it is difficult, if not impossible, to keep virus detection software running continuously on a mobile device because of the device's power limitations.

Most, if not all, security threat detection capabilities can be moved from mobile devices to the mobile cloud. Multiple virtualized malware detection engines (running on the mobile cloud) can then be used to do the actual threat detection. This involves deploying a simple software agent on each mobile device and placing the complex, mobile device-specific detection software on the mobile cloud. The agent inspects file activity on the device, places this activity in a file, and sends the activity file to a mobile cloud service for analysis. The cloud service periodically receives activity files from agents and identifies malicious or unwanted content. A single agent activity file can be analyzed by multiple virtualized detection engines to determine if the file contains intruder attempts to compromise the mobile device.

This cloud-based approach has several benefits, including increased virus detection coverage, less complex mobile software and reduced mobile device resource consumption. This approach will become even more valuable as the scale and sophistication of mobile threats increase.

ABOUT THE AUTHOR: Bill Claybrook is a marketing research analyst with more than 35 years of experience in the computer industry, working the last dozen years in Linux, open source and cloud computing. Bill was research director of Linux and Open Source at The Aberdeen Group in Boston, and a competitive analyst and Linux product marketing manager at Novell. He is currently president of New River Marketing Research and Directions at Red Hat. He holds a doctorate in computer science.

Dig Deeper on Mobile infrastructure

Unified Communications