There is currently much controversy over which mobile apps are better -- native applications or mobile cloud applications. To examine this controversy, it is important to look at the differences between developing mobile cloud apps and native apps.
A native app is installed directly on a mobile device and developers create a separate app version for each mobile device. The native app may be stored on the mobile device out of the box, or it can be downloaded from a public or private app store and installed on the mobile device.
A native app is built for a particular device and its operating system. Data associated with the native app is also stored on the device, although data can be stored remotely and accessed by the native app. Depending on the nature of the native app, Internet connectivity may not be required.
For more on mobile cloud apps
Learn the best practices for developing mobile cloud applications
Find out how mobile cloud apps are changing IT
Native apps have the ability to use device-specific hardware and software, meaning that native apps can take advantage of the latest technology available on mobile devices such as a global positioning system (GPS) and camera. This can be construed as an advantage for native apps over mobile cloud apps.
Mobile cloud apps are very similar to Web-based applications. The main similarity is that both mobile cloud apps and Web apps run on servers external to the mobile device and require the use of a browser on the mobile device to display and then use the app user interface (UI). In addition, they both are targeted for multiple mobile devices versus a single mobile device, as are native apps.
Mobile cloud apps do not need to be downloaded and installed on mobile devices. Users view the mobile cloud app UI in a browser window on the remote device. An Internet connection is required to use mobile apps running on a mobile cloud. When data is transferred between a mobile device and a mobile cloud app, it is usually done using JSON over HTTP.
Mobile cloud apps can be native apps rebuilt to run in the mobile cloud; custom apps developed for mobile devices; or third-party apps downloaded to the cloud from external sources. Some organizations offer both a native and mobile cloud versions of their applications.
Differences between mobile cloud apps and native apps
Differences between the look of a native app versus the look of a mobile cloud app are readily apparent. Some clear differences between mobile cloud apps and native apps that affect development include:
- The mobile app environment: Mobile cloud server or mobile device
- Look and feel: For mobile native apps this is native and for mobile cloud apps it is emulated. Native apps provide for notifications, such as the iOS notifications, while mobile cloud apps do not natively support notifications.
- Access to on-device features: Native apps have direct access to on-device features such as GPS, camera, locomotion and sound. Mobile cloud apps may have access to some of these features through application programming interfaces (APIs) that reach down to the device itself.
- UI speed: Native apps are generally faster, whereas mobile cloud apps view the UI through a mobile device browser. A native app interface runs on the mobile device, eliminating any browser overhead.
Choosing to develop a mobile cloud app over a native app often comes down to whether a developer is willing to sacrifice function for ease of porting to various devices.
Native vs. mobile cloud app development
For native apps, each mobile application development platform, such as iOS and Android, uses its own development process and has its own native programming language: Java (Android), Objective-C (iOS) and Visual C++ (Windows Mobile).
Native apps usually have app development tools such as Apple's iOS software development kit, Google's Android development tools and Microsoft's .NET Compact Framework. Sybase and PhoneGap provide other development tools for native apps. Conversely, the development tools for cloud mobile apps are not tied to any mobile device operating system.
For both native apps and mobile cloud apps, tools and frameworks are available to help in developing software for deployment on multiple OS platforms and Web browsers.
Apple’s development platform also enables developers of native apps to use the iOS notifications feature to play an audible alert or display a visual alert or banner on the screen. Mobile cloud apps can access a limited amount of the mobile device’s native features and information. This access is typically through an API.
Mobile app questions to consider
There are a number of questions to ask before creating a mobile app. They include:
- How many mobile device platforms do you intend to support?
- Do you have a bring your own device (BYOD) strategy?
- Do you need to use on-device hardware/software features?
- How important is security?
- What is the purpose of the app?
- How important is data integration with the rest of the system?
If cross-platform compatibility is a concern as it will certainly be in corporations implementing BYOD strategies, then mobile cloud apps are a better choice. But if you need a business app that uses many on-device features, then native app is probably the way to go.
Security is the biggest weakness of mobile devices. Their portability and size makes them more likely to be lost or stolen than a notebook. Native apps that access business data remotely and then leave it on the device, intentionally or unintentionally, are big risks if the device is lost or stolen. Mobile cloud apps' data are stored on the mobile cloud, not on the mobile device. Therefore, a lost or stolen mobile cloud app device poses less of a security risk.
If you are building mobile business apps for internal use or customer use and you have many mobile devices to support, mobile cloud apps are a good choice. If you are interested in creating mobile apps to sell, then the native app is a good choice because it can be placed on one or more app stores regularly visited by customers.
When mobile business apps access databases -- and most do -- you will need to integrate the apps with your current system. This is akin to integrating a third-party customer resource management or enterprise resource planning product with the rest of your existing system, and this is not an easy task. When data integration is necessary, mobile cloud apps are the best choice because your mobile apps are running in the same cloud as the rest of your system, not on a remote mobile device written in a language not supported on the cloud.