Divergent Themes

This document is a web-app version for one of my reports in the Professional Practice module. This report is entitled Divergent Themes and offers the opportunity to research and develop a topic that diverges clearly from one previously studied.

I present this as a web application and also as a native mobile application as reinforcement to my reports scope and overall conclusion. You will find all of the original sections of my report by clicking the following links:

This site can be viewed as seen here from almost any mobile device, in addition a natively packaged Android application can be found here.

Author : James Ivings

Introduction

In this report I will be discussing the processes of modern mobile application development, focusing mainly on the problems involved in creating applications, both for the developers along with the impact on the mobile manufacturer and market in general.

The first mobile applications were created in the late 90's, they usually consisted of simple multimedia, games, calculators or calendars to name a few.
The advent of faster data transmission, new wireless technologies and increasingly smaller and more powerful phones led to an explosion of this area of the industry, and coining of the now familiar term 'Smartphone'. Although the word lacks a specific definition, modern Smartphones generally offer their users computer-style capabilities, including high processing power, quick mobile internet, high resolution displays and the ability to extend functionality via downloads.

There are several manufacturers offering Smartphones and their services, the main competitor in recent years being Apple, with their flagship iPhone. Application developers can create, propose and publish applications to Apple's 'App Store' and receive a share of the sale price as the Apps are purchased by iPhone users through their phones internet. Most manufacturers application distribution processes follow a similar structure, however it was estimated that in 2010, Apple's App Store was responsible for nine out of ten of all application downloads. Though other manufacturers are quickly catching up and procuring market share as shown in figure 1.

In closing, a recent statistic suggested that the total value of the mobile application ('App') market is expected to reach $58 Billion by 20141, so it is understandable that this is currently a very popular industry in which to be a part.


1 2011, Gartner Inc

The Problem

As the mobile market share diversifies, the problem that developers are facing is which platform to develop for. Due to a lack of standards across the mobile industry, to develop for each mobile platform requires a different set of tools and SDKs. Therefore developers often target one or two platforms to avoid having to learn extra skill sets, thus decreasing their exposure potential.

To put things into perspective, let us consider the major mobile operating system manufacturers to be Apple, Google, Nokia and Research In Motion, since they represent over 90\% of the market collectively. The operating systems that these manufacturers build, and the environments that they run are as follows; iOS in Objective-C, Android in Java, Symbian written using C++ and QT, and Blackberry also using Java.
That is four different languages across the platforms, all of which would have to be understood, one of which is completely proprietary (Objective-C) and thus would only ever be used for this purpose. Obviously the necessity to learn each of these languages, along with their frameworks and intricacies is a very impeding barrier to entry in the application development market and one that does not look likely to change.
In addition to this, in order to develop for Apple's iOS it is actually necessary to own an Apple Mac, as this is the only platform that allows access to development certificates and interaction with iOS devices. This adds a further expense to any developer wishing to provide an Application across multiple platforms, and is one that almost can't be ignored, since the iPhone App Store accounts for such a large percentage of all App downloads.

Also, as developers we need to consider the rise of cloud services. As internet speeds become less of a problem, more and more services are being offered by the web, and there are an increasing number of technologies and frameworks that take advantage of this fact. HTML5 and modern JavaScript engines mean that a fully web based user experience is almost indistinguishable from a native application and there is no reason why these web apps cannot be accessed from a Smartphones generic web browser. The drawbacks however, are that there is restricted access to the native API (integration with phone memory, camera, network etc) and distribution via the manufacturers app store is not an option. Availability is a major factor in this situation, and thus many would opt for native over web apps, but as web based services become more and more popular this could be due to change.

The question that developers must ask themselves is: due to the implications of even market share and no cross platform standards, will mobile application development continue to be lucrative in a market with increasing emphasis on cloud and web based services?

Emerging Solutions

As I mentioned in the previous section, forgetting about the potential drawbacks for a second, web apps are a possible solution to the cross-compatibility problem, as one carefully constructed web page can be designed to look great on a mobile screen.
The majority of time it takes to create a web application for a mobile platform would be spent in the design phase, writing the CSS and HTML to make the pages render properly for a mobile screen. Thankfully a few frameworks already exist that take the hassle out of this particular aspect. One of which is a branch of the popular JavaScript library jQuery, and is known as jQuery Mobile2.

jQuery Mobile

jQuery is the most popular JavaScript library currently in use on the web3. Its purpose is to simplify the complex aspects of client side coding, such as document parsing, animating and AJAX.M
jQuery Mobile is defined as a 'Touch-Optimised Web Framework' which is being developed by the jQuery team. It allows creation of mobile interfaces featuring a "flexible, easily themeable design"4.
This allows us to create a rich mobile user interface using simple web languages, whist not having to actually worry about complex design elements. jQuery Mobile renders the simple web pages created using its own unique style, providing backgrounds, cross-compatibility, touch events, buttons and fields and much more.

Evidently this is of great benefit to the developer, as little time need be spent designing an implementing a mobile web ready interface. However, we have discussed how to easily create a web-app, but as I have already proven, this is not in the developers best interest.

Essentially what developers need is a method of releasing their web-apps to the manufacturers app stores, thus taking advantage of both the simple web languages and procedures and the ease of distribution offered by the manufacturer.

PhoneGap

Looking in depth at the operating systems APIs, a solution does present itself. Built into all of the manufacturers operating systems is an element that allows a web page to be displayed inside an application. This component is known as a Webview for Android5 and iOS6, Webworks for Blackberry7 and Web Runtime (WRT) for Symbian8. From now on I shall refer to these collectively as webview components.
Using this component it should be possible for us to render the website that we have created using jQuery Mobile within a native application, thus reaping all of the benefits without the drawbacks. However the application that contained the webview would still need to be written using native code, and we would still have to follow the development and distribution procedures required by each manufacturer.

An open source framework called PhoneGap9 has begun to resolve this issue. From their website you can download source files for each platform, providing a 'wrapper' for the webview component. This wrapper allows interaction with the majority of the native API directly from our web application using JavaScript, and thus lifts our development restrictions.

In addition to this, the PhoneGap team are also working on a complementing technology which allows the applications to be built on their own servers10. With this service, developers can upload only the source of the web application (HTML, CSS and JavaScript), this is then wrapped by PhoneGap’s framework and a build for each platform constructed automatically for download (see Fig \ref{fig:PGB}).

This cloud service advances the mobile development industry by a huge amount, offering a viable option for multiplatform development, without having to learn each technology, or even compile the applications yourself. The service (which is still in Beta stages) will be offered for free to all open source projects, and at a yearly fee to others11.


2 2010, The jQuery Project
3 http://trends.builtwith.com/javascript/JQuery
4 2010, The jQuery Project
5 2011, Webview: Android Developers
6 2010, Displaying Web Content : iOS Developer Library
7 2011, Blackberry Webworks Development
8 2010, Web Developers Library for Symbian
9 2011, PhoneGap
10 2011, PhoneGap Build
11 2011, PhoneGap : Services

Impact

The full impact of these emerging technologies remains to be seen, as they are still actively being developed, however the potential benefits are staggering. From a business perspective, companies may find that because web applications have a much shallower learning curve, they will not need to outsource mobile developers in order to complete their mobile products, but can instead use in-house development teams. In terms of financial benefit, it has been estimated mathematically that based on available statistics, the average native mobile application will cost a company approximately $30 000 for a brand-quality iPhone app when hiring external developers12. A comparable web app would cost a fraction of that amount.

In my personal experience working with mobile applications, my placement employee, Gamma Telecom, spent approximately £50 000 hiring a popular company to create a multiplatform application for them. As well as this initial payment, for each update or minor change to the design, or to implement new features, Gamma have to pay additional fees. Had they developed the application in-house as a web app, which would have been entirely possible based on the simplicity of the project and the knowledge of the developers, then it would have cost them far under this amount. Indecently there are additional fees involved, such as procuring developer accounts13, and buying test devices. However even with these hidden costs, the price of development still falls far short of the amount spent external companies.

However I have brought these new web-app technologies to Gamma's attention, and through my recent work have managed to create an application for a separate project that's design and implementation rivals that of the externally built app. From this Gamma have begun to see the potential and savings to be made from these technologies, and hopefully will continue to incorporate them into their services.

With the rise in popularity of cloud and web based services, I foresee that the advantages of mobile technologies such as PhoneGap and jQuery Mobile will begin to become clear.


12 2010, Ahonen
13 Example; £60 for Apple Developer Account - https://developer.apple.com/programs/ios/

Conclusion

At the beginning of this report an amalgamation of problems that mobile application developers face was outlined. The foundation of the problem was due to the lack of standards in the industry. Naturally, mobile device providers are looking to maximise their revenue, and it seems as if a large aspect of that is locking users particular methodology, or developers into a specific programming language. Essentially this often results in a particular brand loyalty, since this is easier for the consumer.
With a rise in cloud and web services, the industry could see a increase in web applications, which need not be bound by the problems above. But as we discussed previously, this is not in the best interest of the developer, as distribution becomes difficult.
However, from the research presented, we can see that by using loopholes in the device APIs some steps have been made to decrease this brand monopolising, while allowing developers to take advantage of simple web technologies. Frameworks that take advantage of these loopholes have cut the strings that prevent many developers from creating multiple platform applications, developers that may otherwise have resorted to web based apps.

The second problem is that compiling any kind of application can be quite load intensive, and compiling for multiple platforms must be performed separately, as completely different environments are needed. This provides many drawbacks to multiplatform development in terms of cost, time and complexity. We have also discussed an emerging solution to this problem, facilitated by increasing internet capabilities and a rise in cloud technology. The solution allows applications to be compiled completely asynchronously in the cloud, thus eliminating the issues of cost and time, as well as the need for the developer to have each development environment.

In conclusion, it appears that the emergence of such trends as cloud computing and web distributed services is benefitting the mobile development industry (at least for the developer) greatly. Although some manufacturers were initially opposed this change in the manner of application development14, they are beginning to accept the new methods and the benefits that they bring15.


14 2011 Mike Nachbaur : Open Letter To Apple iPhone Developer Support
15 2011 Mike Nachbaur : Phonegap Officially Permitted On The App Store

Bibliography