Mobile Application Development and Cloud Computing

The development of mobile technologies now regularly occurs by leveraging cloud applications. The purpose of this post is to explore the cloud computing and how it enables the development of smart mobile technologies.

Network-based computing goes as far back as 1960, but it is alleged, that Eric Schmidt (then Google CEO) introduced the term ‘cloud computing’ as early as August 2006, apparently the term was a play on the Internet cloud symbol used in the flow diagrams of the time. Ever since then, the cloud computing model became prevalent in application development and over the past few years we also see an increase in the development of cloud-based mobile technologies, who increasingly leverage the cloud architecture and cloud application and services to their advantage.

Mobile devices can run on various OS platforms, such as Android, Apple iOS, Windows OS, Firefox OS, Ubuntu Touch, Sailfish OS, Tizen, Windows 10 Mobile or BlackBerry 10. However, that is not the only problem; there are also major inconsistencies in the use of underlying mobile hardware. We see mobile devices that come with various display sizes and resolutions and use hardware modules such as camera, audio, navigation, accelerometer, fingerprint and iris scanners, proximity sensors, compass, barometer, heart rate, SpO2, gyro and many other technologies that hugely vary in their performance from one device to another. The fact that further complicates the problem is that new devices from various smart mobile retailers come onto the market almost every single month.

This issue is also voiced by Bill Claybrook, President of New River Marketing Research, who shares a similar sentiment in the following statement: “One of the biggest issues in mobile application development is how to build mobile apps that are applicable to many mobile devices.” (Claybrook, 2017).

We could conclude, that the main goal of a mobile application development is to make sure that smart mobile apps achieve satisfactory performance on all operating systems and various hardware platforms. However, as we can see, the development of a mobile application is an enormously complex undertaking.

Fortunately, most of the mobile OS manufacturers were quick to recognize these issues and started designing their operating systems to be cloud compliant with cloud-based storage.

Moreover, that leads me to the advent of the cloud computing because this is likely the single most important technology that over the past few years had a most positive impact on alleviating the above-mentioned issues of mobile application development.

“The cloud heralds a new era of computing where application services are provided through the Internet.” (Karthik & Yung-Hsiang, 2017)

Nowadays it is nearly impossible to find a cloud-based technology, service or tool that aren’t created with a mobile device in mind. The following are some of the cloud-based technologies that in my opinion have had the biggest influence and truly encouraged the mobile development in the cloud.

Cloud Based Storage – The ability to keep the data in the cloud, instead of having it stored on the mobile device, outside of the control of developers is one of the biggest advantages. Mobile developers of today’s age can leverage cloud storage to centralize and scale the data easily. Essentially all cloud providers now provide the cloud-based storage services that allow the mobile application to organize files ranging from small to large media such as photos, music, video and log files.

Cloud Computing – Computing performance of smartphone devices is enhancing and quickly catching up with the computing power of personal computers. However, some of the mobile phone applications, especially in gaming and scientific areas, still far surpass the computing capacity of most of the mobile devices on the market. “Combining the context that can be ascertained from the sensors on the smart mobile device with the ability to offload processing capabilities, storage, and security to cloud computing over any one of the available network models via RESTful web-services, has allowed us to enter a powerful new era of mobile consumer computing.” (Christensen, 2009).

Another way to use cloud computing is to offload entire mobile application into a server hosted in the compute cloud and serve the application through HTML5 browser based technology. This can dramatically alleviate the most issues of supporting a variety of mobile devices, as well as the need to build native applications. One of such offerings is Adobe® PhoneGap™ Build that allows developers upload their HTML and JavaScript resources to Adobe cloud which does the multi-platform packaging, as well as entire work of compiling for the developer.

Cloud Mobile CDN – Content Delivery Networks is one of the most popular cloud services for mobile as well as web designers. CDNs allow mobile developers to serve files through a distributed cloud storage, which brings the files as close as possible to the end user, dramatically improving overall performance.

There are much more cloud-based technologies that deserve but due to lack of space will not be mentioned here. Some of those include:

  • cloud databases
  • cloud migration tools
  • cloud-based security and compliance services
  • analytics
  • artificial intelligence
  • specific mobile services such as tools that allow building, testing and monitoring of mobile apps, or services that deal with mobile messaging, or user identity and app data synchronization.

Conclusion

I somewhat disagree with the statement of Fernando, Loke & Rahayu (2013), who say that “Mobile cloud computing can address these problems by executing mobile applications on resource providers external to the mobile device.”.

Figure 1 – MCC Architecture for mobile operator network (CCENG, 2017).

As we can see in Figure 1 that illustrates the typical MCC architecture used mobile network operators, a robust and fast Internet connection is a major enabler of using cloud computing services on smart mobile devices.

That said, in my opinion, while the cloud computing is positively influencing the development of mobile applications by allowing mobile developers to exploit the full potential of smartphones truly, there are also some disadvantages of using the cloud technologies on mobile devices.

One of the most important is the nature of running the services across the Internet. It is the mobility itself, that is in my view, the enemy number one for a cloud-based application. Complete loss of the internet connection, mobile signal shortages and slowdowns, or even recurring disconnections can negatively impact the performance of a mobile (cloud-based) applications.

 

References

Huang, D. (2011). Mobile cloud computing. IEEE COMSOC Multimedia Communications Technical Committee (MMTC) E-Letter, 6(10), 27-31.

Fernando, N., Loke, S. W., & Rahayu, W. (2013). Mobile cloud computing: A survey. Future generation computer systems, 29(1), 84-106.

Christensen, J. H. (2009, October). Using RESTful web-services and cloud computing to create next generation mobile applications. In Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications (pp. 627-634). ACM.

Qi, H., & Gani, A. (2012, May). Research on mobile cloud computing: Review, trend and perspectives. In Digital Information and Communication Technology and it’s Applications (DICTAP), 2012 Second International Conference on (pp. 195-202). ieee.

Claybrook, B. (2017). Cloud infrastructure for mobile application development. [online] Available at: http://searchcloudapplications.techtarget.com/tutorial/Cloud-infrastructure-for-mobile-application-development [Accessed 1 Jul. 2017].

Karthik K., Yung-Hsiang L. (2017). [online] Available at: https://www.cs.purdue.edu/homes/bb/cs590/handouts/computer.pdf [Accessed 1 Jul. 2017].

CCENG (2017). Cloud Computing Fundamentals and Cloud-Based Services Engineering. [online] Available at: https://elearning.uol.ohecampus.com/bbcswebdav/institution/UKL1/201760JUN/MS_CKIT/CKIT_523/readings/UKL1_CKIT_523_Week05_LectureNotes.pdf [Accessed 24 Jun. 2017].