Mobile Application Development (Android)

Discuss the history of Apps Development

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 3rdApril 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.

Psion EPOC

psion-epoc

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 OS

palm-os-visor

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).

WML

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.

J2ME/JME

j2me

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.

Symbian

nokia-E90

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.

Nokia-808-PureView

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.

a) This course is specially designed to provide technical knowledge and skills to cope with the requirement of Android Developer occupations of the Mobile sector. The course will be implemented to ensure at least 80% of total contact hours on practical/hands on skills training or practice and 20% trade/ occupations related theory including OHS and soft modules;

b) The course is designed to enable trainees to acquire a range of technical and vocational, practical, personal and organizational skills valued and utilized both within and beyond the workplace;

c) The course is designed to meet the required competencies of the occupations needed in the labor market in and outside the country;


Download This Course Outline

  • Android Overview & Quick Start

  • Main Building Blocks

  • Java Basics

    • Create hello world application in java
      Viewing Completed Lesson
    • Data types in Java
      Viewing Completed Lesson
    • Methods in java
      Viewing Completed Lesson
    • See the list of number in display
      Viewing Completed Lesson
    • Understand basic anatomy of a java program for android application
      Viewing Completed Lesson
    • Understand conditional statement, looping
      Viewing Completed Lesson
    • Work with java variables: integer, string, double
      Viewing Completed Lesson
  • OOP Basics

    • Create a class with the collection of another class in its field
      Viewing Completed Lesson
    • Define association relationship
      Viewing Completed Lesson
    • Define static class and method from real life example
      Viewing Completed Lesson
    • Encapsulate your data and its functionality
      Viewing Completed Lesson
    • Keep some field, property, method inside a class
      Viewing Completed Lesson
    • Understand the essence of inheritance relationship
      Viewing Completed Lesson
  • Android User Interface

    • Design a simple activity layout for some basic user operation
      Viewing Completed Lesson
    • Design UI with Fragments and ActionBar
      Viewing Completed Lesson
    • Familiar with UI Widgets
      Viewing Completed Lesson
    • Understand View and Layout
      Viewing Completed Lesson
    • What is activity life cycle
      Viewing Completed Lesson
  • SQLite Database

    • Create a table in SQLite
      Viewing Completed Lesson
    • Doing CRUD operation in database
      Viewing Completed Lesson
    • How to manage SQLite database
      Viewing Completed Lesson
    • Overview on SQLite and Database design
      Viewing Completed Lesson
    • Save and select data from database using Android Application
      Viewing Completed Lesson
  • Broadcast receivers

    • How to start a service by using broadcast receiver
      Viewing Completed Lesson
    • Receive an event
      Viewing Completed Lesson
    • Start a service
      Viewing Completed Lesson
    • Understand event receiving.
      Viewing Completed Lesson
  • Services

    • Generate notification using service
      Viewing Completed Lesson
    • How to play music as a background service
      Viewing Completed Lesson
    • Implement different types of service
      Viewing Completed Lesson
    • Lifecycle of services
      Viewing Completed Lesson
  • Content Providers

    • How to create content provider
      Viewing Completed Lesson
    • Pass data from one process to another
      Viewing Completed Lesson
    • Simplify database operation
      Viewing Completed Lesson
    • Use content provider
      Viewing Completed Lesson
  • APIs

    • Access call state
      Viewing Completed Lesson
    • Access phone call state
      Viewing Completed Lesson
    • Drawing routes on Map
      Viewing Completed Lesson
    • Finding users location
      Viewing Completed Lesson
    • Introduction to sensor
      Viewing Completed Lesson
    • Maps issues
      Viewing Completed Lesson
    • Retrieve telephony network information
      Viewing Completed Lesson
    • Understand Location API
      Viewing Completed Lesson
    • Working with Map API
      Viewing Completed Lesson