A History of Mobile Application Development
This post is the first of three based on a talk I gave at BCS (the Chartered Institute of IT) in December. The title of the talk was Mobile Application Development: Past, Present and Future? In it I gave a brief history of the mobile app, described the various mobile application environments that exist today and did a bit of speculation on what the future might hold.
In this post I’d like to concentrate and expand on the first part of the talk, describing the evolution of mobile apps (and mobile app development), bringing us up to where we are today.
What is a mobile application?
Here’s the Wikipedia definition:
A mobile application (or mobile app) is a software application designed to run on smartphones, tablet computers and other mobile devices.
So pretty straightforward then? Not quite.
The history of the mobile app begins, obviously, with the history of the mobile device and the first mobile phones whose microchips required the most basic of software to send and receive voice calls. But since then things have got a lot more complicated.
Where did it all begin?
The first public cellular phone call was made by Martin Cooper of Motorola on 3rd April 1973 in a publicity stunt in New York. There would be another ten years of R&D however before the first cell phone would hit the market. The DynaTAC 8000X weighed in at around 2 pounds, cost $4,000 and didn’t run any apps.
The first recognisable apps came with Psion’s range of handheld computers – mostly PDAs – that used the EPOC operating system. First released in the early 90s the sixteen bit machines (SIBO) which ran EPOC allowed users programmes such as a word processor, database, spreadsheet and diary. Later models in the range, running a 32-bit OS, would come with up to 2MB RAM and allow users to add additional apps via software packs (or via download if you were lucky enough to own a modem).
EPOC, which was programmed in OPL (Open Programming Language) and allowed users to create their own apps, would later form the backbone of the Symbian operating system.
Palm emerged as a major rival to Psion in the PDA market with its cheaper, lower functionality range of PDAs – the Palm Pilot. Commercial success allowed Palm to release a new generation of machines in 1996 which utilised the Palm OS. This had a touchscreen GUI and came with a raft of basic apps as well as tons of third party apps programmed in C/C++. From Palm OS 3.0 onwards these included a WAP browser.
Following the acquisition of PalmSource by ACCESS, Palm OS became the ACCESS Linux Platform before being abandoned in favour of webOS (which is now used in LG’s smart TVs).
Wireless Markup Language was based on XML and was developed by the WAP Forum for use in Wireless Application Protocol enabled devices. It was lightweight and good for the low bandwidths you got with mobile devices back in the late 90s because it stripped out much of the HTML that requires processing power.
The lack of content though and the need for users to go through a WAP portal rather than accessing web pages directly – allowing network providers to restrict access to much of the web – meant that WML was quickly consigned to history’s rubbish dump when mobile devices got fast enough to do without it.
As feature phones got faster the possibilities for phone apps expanded and it was Java Micro Edition that won the race to provide a platform for developing them.
Java ME started life as JSR 68, replaced Personal Java and quickly became so popular that it evolved into numerous standards for use across phones, PDAs and other embedded devices like set top boxes. Devices implement profiles (like the Mobile Information Device Profile) which are subsets of configurations (like the Connected Limited Device Configuration).
CLDC, designed for devices with total memory of 160KB to 512KB, contains the bare minimum of Java-class libraries required for operating a virtual machine.
MIDP, designed for mobile phones, includes a GUI, an API for data storage and even (in MIDP 2.0) a basic 2D gaming API. Applications here are called MIDlets. MIDP pretty much became an industry standard for mobile phones.
Java ME spawned an open source implementation, Mika VM, which contains the class libraries for implementing the Connected Device Configuration.
JME was the undisputed king of mobile platforms, it’s used in the Bada and Symbian operating systems and implementation existed for Windows CE, Windows Mobile and Android.
As mentioned earlier, Symbian grew out of the Psion EPOC operating system. Originally developed by Symbian Ltd – a joint venture of Psion, Ericsson, Motorola and Nokia – the operating system was almost ubiquitous. In 2009 250 million devices were running Symbian.
It was Nokia that really drove the development of Symbian OS. The S60 platform was used on nearly all Nokia handsets as well as some Samsung and LG ones. The use of different, fragmented platforms (Sony Ericsson and Motorola used UIQ and there was MOAP(S) for NTT DoCoMo), each with its own API, meant that there were a variety of deployment techniques and no standard market place for apps.
The incompatibility of apps across platforms and the failure to fully move to open source (several key components were licensed from third parties) are probably what sounded the death-knell for Symbian. There were also problems with malware, a browser which didn’t support multiple windows or compress pages and a nightmare process for typing in non-Latin text.
A market share of 37.6% in 2010 had dropped to 4.4% in 2012 after Nokia jumped ship for the Windows Phone platform and other OEMs gathered beneath the banner of Android with its single, unified market place for apps.
The last Symbian smartphone, the Nokia 808 PureView ran the Nokia Belle update which used C++. It was an award winning phone (chiefly because of its 41 megapixel camera) but wasn’t enough to prolong Nokia’s heyday.
Symbian, once the largest codebase ever moved to Open Source, is now licence-only and Nokia’s development of the OS has been outsourced to Accenture.
Which brings us up to the present day…
…well, pretty much. I’ll explore the current mobile app development landscape in my next post. This one has gone on long enough already…