Mobile Application Development

Recently, I had a lot of discussions about mobile application development. As there is a big hype around App-stores for the different platforms, it seems that everybody and everything needs a native app for a mobile device. Slightly hidden from this hype are the advances the mobile web. I covered some aspects briefly in a previous post and probably the most important ones are code portability and cost efficiency for reaching a large target audience. Yesterday, I stumbled upon a nice article on mobile application development in ACM's CACM that focuses on the pros and cons of native vs. web-based mobile applications. To spoil the reading: the authors are very much pro mobile web.

With the recent developments on the smart phone market lead by iOS and Android systems the mobile web becomes an actual alternative for mobile application development. Before these systems were available there was no mobile (smart) phone that had a capable web-browser that was worth speaking of. With the latest systems mobile devices have now web-browsers with (almost) the same capabilities as desktop browsers that fit into the general user experience of the mobile device. 

Andre Charland and Brian Leroux analyse the state of mobile application development with a clear bias towards web-convergence. This is not so surprising because the World-wide Web seems to obsolete the traditional Desktop computing metaphor. Similar to my own opinion, the authors locate the biggest benefits of mobile web-applications at the efficiency level: web-applications are much cheaper and much faster to develop than native applications, if the application needs to the available on different platforms. Given the plethora of devices and platforms of mobile devices this is even more important than it was previously on the desktop. The interesting aspect that is highlighted by this article is that contemporary mobile devices do not share programming paradigms and are built on top of specific frameworks and programming languages, which are not shared across the platform boundaries. This makes it factually impossible to maintain platform independent code of native applications for different mobile platforms. Practically, this implies that multi-platform mobile application development means that an organisation needs to sustain a development team for each mobile platform it wishes to support.

The authors clearly highlight that the efficiency factors outweigh the reoccurring "performance" counter-argument for mobile application development. However, the article emphasizes two facets of mobile application development that limit the potential of the mobile web. The first facet is the user-experience and the second facet are the device capabilities. 

The user experience is an important aspect of making attractive and useful mobile applications. This aspect becomes cumbersome because no platform shares the same user guidelines. In other words, mobile web-applications will not fit into the main user experience on every platform that is capable to run the web-site. This remark is interesting, because there are many mobile web-sites that copy the iPhone user experience metaphors, that do not match the user expectations on Android, Blackberry, WebOS, MeeGo, Windows Mobile, or Symbian. The support of the "biggest market share" is frequently used as a key argument. However, worldwide market statistics indicate that this argument has its flaws: the market is mainly distributed among 4 main players, of which Apple is certainly not the biggest. The biggest share argument always fails, because none of the market players have a sufficiently large share (more than 50%) that would justify neglecting the user-experience problem. 

The device capabilities of recent smartphones is a ground on which web-based applications can hardly compete with native applications. Although, some device specific APIs are exposed to mobile web-applications (most notably the geolocation api), many device specific features remain unavailable to web-applications. As this includes the phones' microphone, speakers and camera some of the core features of smartphones are only available to native applications. Other high level features are typically based on vendor-specific solutions. This incudes push notifications that can alert a user when the device is not actively in use. These features remain in the domain of native applications.

The authors remark that the device capabilities are weakened from two directions. Firstly,  the W3C puts some effort into exposing more device features to web-application through standardised APIs. Secondly, all recent platforms allow to integrate web-components into native applications. Bridging frameworks such as PhoneGap use this feature to enable the development of native applications entirely with web-application approaches.

The article indicates that the future of mobile application development shows a clear and strong convergence towards web-technologies. However, it will remain more challenging than developing for desktop systems with similar interaction metaphors. While the current limitation of device capabilities can already be solved by bridging frameworks, the different user-experience approaches will remain the key hurdle for optimising mobile application development for several platforms.