Tools and Platforms: Choices for a Mobile Application Developer
I. INTRODUCTION
With the introduction and popularity of wireless devices,
there are many top-name companies trying their best to
capture the market. Unlike the PC, where MS Windows is the
dominant platform, the mobile world is still open to be
embraced.
There are different platforms and tools from different
vendors such as Qualcomm, Microsoft, Sun, Nokia,
SonyEricsson and many more. This paper will look at some
of the major platforms trying to dominate the market. To
limit the domain of this paper, it’ll discuss only the
platforms related to Cell phones rather than all the
mobile devices such as Handheld, PDAs etc.
According to Samual May, a wireless analyst with U.S.
Bancomp Piper Jaffray, “There’s a battleground out there.
The stakes are big. The computer (PC) industry settled on
one operating system. The cell phone (market) is bigger
than the computer”. [1]
II.
It is certain that the mobile market is going to flourish
dramatically. According to a research report by Strategy
Analytics Inc, the global cellular market will double in
size to 1.7 billion by the end of 2006. [2]
The company’s latest report “Worldwide Cellular User
Forecasts (2001-2006)” provide detailed forecasts of
installed base, penetration and service revenues by major
region and air interface.
“The W. European cellular market has grown at a
phenomenal rate over the last two years, but this growth
will slow down dramatically over the next two”, says Phil
Kendall, a directory of Strategy Analytics’ Global
Wireless Practice. [3]
As we witness that with the growth of Smartphones, the
number of real-time and revenue generating applications
are starting to appear on the large and colorful screens.
The shipment of Smartphones over the last year is summed
up in Table 1.
TABLE 1
Smart Phone Vendor Shipments
|
Vendor |
Q2 2003 |
Q2 2003 |
Q2 2002 |
Q2 2002 |
Q2 2002 |
|
Nokia |
838,650 |
78% |
59,220 |
70% |
1316% |
|
Sony Ericsson |
164,750 |
15% |
3,410 |
4% |
4731% |
|
|
58,070 |
5% |
N/A |
N/A |
N/A |
|
Others |
6,960 |
1% |
22,420 |
26% |
-69% |
Source: Canalys [4]
III. MOBILE DEVELOPMENT AREAS
There are three different development areas for Mobile
Platforms apart from the SMS/MMS technologies. These
are.
A. Web Application
This type of applications runs from a server and displays
its result on the mobile device. The most popular language
used to develop such applications is WML. But, due to the
early failure of WAP and the simultaneous success of iMode
(a similar language developed by NTT Docomo in
B. Mobile Applications
This is the area that this paper is going to cover. This
type of applications run inside the
IV. MOBILE PLATFORMS
A. Symbian
Currently, Symbian holds the largest number of user base.
Its licensees represented over 80% of mobile phone sales
in 2002. Some of the big companies such as Nokia,
SonyEriccson, Motorola, and NTT Docomo etc. are already
investing heavily in Symbian OS. The chairman and CEO of
Nokia, Jorma Ollila, stated in May 2001 that “…by 2004,
50% of Nokia 3G phones will be Symbian OS based. [5]
There are several versions of Symbian OS. The Symbian
v7.0 is the latest of all. It provides a robust
architecture and API to support development. The
Architecture Summary for Symbian OS is provided in Table
2.
TABLE 2
Symbian OS Features
|
Target CPU |
Targeted at ARM handsets |
|
Memory Usage |
RAM is used exclusively for main memory, while
Flash-memory or expansion cards are used for
permanent storage |
|
Multitasking |
Multitasking-Multithreading allows for background
applications and multithreaded applications. |
|
Shared Libraries |
Supports DLLs |
|
User Interface |
Provides support for check boxes, radio buttons,
lists, scrollbars, and other components.
While many applications can be active at a time,
Symbian OS UIQ supports one application presented
to the user at a time – other tasks can run in the
background.
Provides a layered UI framework that allows for
the implementation of different UI metaphors. UIQ
is one user interface available to Symbian OS.
Internationalization/Localization supported via
resource files. |
|
Connectivity |
Infrared, Serial, HTTP, HTTPS, TCP, UDP,
Bluetooth, socket API, SSL, SMS, Telephony, Dual
WAP, IPv4/IPv6 Stack, other. |
|
Data Synchronization |
Provides the connectivity software development
kit to write data synchronization converters and
plug-ins. Supports Synchronization Markup Language
(SyncML). |
|
Supported Languages |
Native Programming in C++. Java Programming using
PersonalJava 1.1.1 and Mobile Information Device
Profile (MIDP) 1.0 |
Source: Introduction to Symbian OS for Palm OS
developers. [6]
There are two ways to develop applications for Symbian
platform. The first track is to choose C++, which is the
native language of the Symbian OS and the second option is
to use Java which runs on top of OS layer. In addition to
the basic two choices, there is software called “MobileVB”
by AppForge, through which you can develop applications on
the Symbian platform using the traditional Visual Basic
language. The only downside is that this tool is not free
and hence only enterprise can benefit from this
tool.
With the generic componentized architecture of the
Symbian OS, different vendors then choose some or all of
the components to make up their own reference
implementations. Such as Series 40, Series 60, Series 80,
Series 90 by Nokia and UIQ used by SonyEricsson P800 and
P900. A reference implementation can be licensed to a
different vendor such as in the case of Series 60 and UIQ,
where both of these technologies are licensed to Motorola
for their Mobile Handsets. For reading about compatibility
between these reference implementations, read the article Symbian OS System Definition by Martin de Jode, Colin Turfus, Symbian Developer Network,
August 2003. [7]
All these different reference implementations are
discussed in details in the following section.
1.)
Nokia Series 40:
For Nokia, a Developer Platform is made for each series of
Handsets. There are actually two different Developer
Platforms for Nokia Series 40, Developer Platform version
1.0 and Developer Platform 2.0. The latter version is
slightly enriched in functionality and supported the
latest java specs and profiles. The Developer Platform 1.0
consists of J2ME with Connected Limited Device
Configuration 1.0 (CLDC), Mobile Information Device Profile (MIDP) 1.0 and the proprietary Nokia UI API which are used
to deal with Full Screen Drawing, Access to Soft Keys,
Sound and Vibration. Some series 40 handsets also support
some of the Java Wireless Messaging API (JSR-120).
The
Developer Platform 2.0 consists of J2ME with CLDC 1.1,
MIDP 1.1 and the Nokia UI API for backward compatibility.
In addition, it also supports Java Bluetooth
Specifications (JSR-82), Wireless Messaging Specifications
(used for SMS and Call Broadcast Service) and the Mobile
Media API to deal with native sound and video services.
[8]
2)
Nokia Series 60:
This platform is by far the most popular developer
platform for Handset devices. Similar to Series 40
architecture, this platform also supports Developer
Platform 1.0 and Developer Platform 2.0. It should be
noticed here that all these Developer Platforms are
specific to the series and therefore the implementation of
Developer Platform on Series 60 are different from the
Developer Platform on Series 40. The Developer Platform
1.0 is installed on the likes of Nokia 7650, Nokia 3650,
Nokia N-Gage, Siemens SX1, Samsung SHG-D700. The series 60
devices consists of large color screen with 176x208 pixels
with 64K color depth. The developer platform 1.0 supports
J2ME with MIDP 1.0, CLDC 1.0, Wireless Messaging API,
Mobile Media API, XHTML browsing, Multimedia Messaging
Service (MMS) and Symbian OS v6.0 Native APIs. The
Developer Platform 2.0 supports MIDP 2.0, CLDC 1.0,
Wireless Messaging API, Mobile Media API, Bluetooth API,
MMS and Symbian OS v7.0 Native APIs. Until now, there is
only one provided released on the Nokia series 60
Developer Platform 2.0 and i.e. Nokia 6600. The difference
between Series 60 and Series 40 platforms is that the
former runs on a complete Operating System and thus making
it a smart phone. [9]
3)
Nokia Series 90:
The latest is the series of Nokia platforms is series 90,
which are installed on Nokia 7700 media device. The
requirements released for this platform are of 640x320
pixels, touch sensitive and 16 bit color screen. This
platform is also installed on Symbian OS v7.0 and supports
Developer Platform 2.0. They have J2ME with MIDP 2.0, CLDC
1.0 with additional APIs for Bluetooth, Mobile Media and
Wireless Messaging. It also supports XHTML browsing, MMS
with Synchronized Multimedia Integration Language (SMIL)
and User Interface Skins. [10]
4) UIQ:
UIQ defines an advanced mobile phone with specific
functionality related to pen-based input and single tap
operations. It also provides large color screen,
innovative GUI and handwriting recognition input to
implement advanced and easy to use systems. Its purpose is
to combine the power of PDA and mobile phone into a single
device. Currently there are only few devices supporting
the UIQ platform namely: Sony Ericsson P800/P900, Ben
Smartphone P30 and Motorola A920. Table 3 provides the
technical summary for this platform:
TABLE 3
UIQ Technical Summary
|
Telephony |
GSM, GPRS, EDGE, EGPRS, HSCSD,CDMA, cdma2000 |
|
Mail and Messaging |
Electronic Mail, fax, SMS and MMS messaging |
|
Internet Access |
Browser |
|
Programming Environment |
C++ and Java (with PC based development using an
emulator) |
|
Connectivity |
Serial and Infrared synchronization, data
exchange and file transfer, Bluetooth |
|
Input: |
Stylus, Hand writing recognition, Virtual
Keyboard, scrolling and Confirm Hardware
button. |
|
Media |
Optional removable CF Card or MMC. |
Source: Symbian UIQ Product Sheet. [11]
The UIQ platform is installed on the Symbian OS v7.0.
B. Microsoft Smartphone:
Microsoft is a little late on pounding the opportunity
provided by the mobile market. It entered into the market
with its own operating system called Microsoft Smartphone
OS. Instead of making the handsets, Microsoft is selling
the operating system’s licenses to different vendors.
Currently
The
new Microsoft Smartphone OS is a compelling and powerful
addition to the Microsoft family of
There are two different versions of the Smartphone OS
currently in the market. The first is released in 2002 and
called Microsoft Smartphone 2002. The Smartphone 2002
platform is based on the Microsoft CE 3.0 operating system
and contains many of the core applications provided with
the Pocket PC based computing devices, including email, IM
and Pocket Internet Explorer. Motorola released its MPX200
cellphone in the
The
Smartphone 2003 is the latest of the two OS.
V. MOBILE
DEVELOPMENT
In this section, we’ll explore all the major development
environments available for a mobile application
developer.
A. BREW (Binary Runtime Environment for
Wireless):
BREW is an application execution environment released by
Qualcomm in February 2001. Initially being restricted to
work on only CDMA networks, now it is capable of running
on any network and can be ported to any handset [12].
Like J2ME, BREW is also vendor neutral development
platform. It runs right above the hardware and runs on
many different OS such as Palm OS. Regardless of platform,
the main advantage of BREW is its low memory footprint
(i.e. only 150K).
There are two essential components to the BREW platform.
First is the BREW SDK, which is used by developers to
create applications on it. Natively, it only supports the
C and C++ programming languages, which poses a deeper
learning curve for new developers. Because of this
pressure, BREW decided to add Java functionality by
selecting IBM’s Java virtual Machine. [13]
The JVM runs in a layer top of the BREW platform and
provides standardized J2ME APIs for the application
developer.
The second part of the BREW platform is for the end user.
It is a piece of software or firmware required by a
handset to run BREW applications on it. This component is
available at no cost and in some case; it is equipped with
BREW enabled cell phones.
Another key feature of the BREW platform is the BREW
Distribution System (BDS). While in other systems, the
developer has to worry about testing, security and billing
of the application they make. In BREW these are all
managed by the BDS, which interfaces with the carrier’s
billing system and permits them to sell them your
application. The
developer don’t need to worry about billing, testing and
application distribution within the network. But, because
the company inserts itself between the application and the
carrier, it receives a small share of the revenue that the
developer and the carrier are getting. Even with that, BDS
becomes the engine to drive the success of BREW.
Qualcomm’s BREW is an exciting platform and a real
competitor to J2ME. Now with more partnerships, such as
with Oracle [15] to BREW enabling its 9i database, it is
making serious inroads into the market.
B. J2ME (Java 2 Micro Edition)
The Java 2 Micro Edition is currently the most popular
platform for developing applications for
Although J2ME is a trimmed down version of standard Java
but it supports platform independence and security. The
overall J2ME architecture can be viewed as,
-
A Java virtual machines targeted to the consumer end
user device. For mobile devices, the virtual machine is
called KVM i.e. K is for Kilo, to demonstrate the small
memory footprint.
-
A group of libraries and API to use the device’s
capabilities and other functionalities. These libraries
and API’s are grouped separately according to devices’
type. They are known as Profiles and Configurations.
-
Several tools to accompany development, deployment and
device configuration.
C. .NET Compact Framework
The .NET Compact Framework is the latest initiative from
Microsoft to compete with Java and BREW. The compact
framework is a limited version of the complete .NET
Framework and provides a runtime, the programming
libraries and the development tools to create and execute
applications on Smartphones running the .NET CF.
The most significant benefit is that the programming
model for .NET Compact Framework devices is identical to
that used by the developer using .NET to build
applications for desktop PCs and servers. The .NET Compact
Framework implements a compatible subset of the
functionality of the full .NET Framework, so developers
use the same techniques to achieve similar tasks, using
the same developer tools, such as
Visual Studio .NET. Prior
to .NET, developing applications for
Windows CE required a
different toolset and programming techniques that were
similar to
Win32 development for the
desktop but different enough to cause many companies to
shy away from making the necessary investment in training
development staff. Now desktop developers can easily
transfer their .NET development skills over to developing
applications for Smartphone devices, reducing developer
training costs.
The only problem with .NET CF is the lack of penetration
in the market and subsequently fewer number of devices
with pre-installed framework. Microsoft is trying to cover
up this by partnerships with major handset provides such
as Motorola and
The .NET Compact Framework offers a very good level of
application portability for developers across Microsoft
Windows server, desktop, and mobile device operating
systems, while J2ME potentially offers a level of
portability across any operating system provided support
has been developed for that operating system.
There is a natural tendency for companies to want to
adopt a single approach so that developers need only learn
and maintain one set of skills. However, both environments
offer mature programming for mobile devices and offer
excellent solutions for developing distributed
applications across the enterprise, from server to desktop
to PDA.
VI. CONCLUSION AND DISCUSSION
Selection of the right development platform continues to
be a daunting task. Devices OS, software development kit
(SDK’s) for the handheld device, communications gateway,
middleware, application server, transaction processing,
payment processor for m-commerce applications and
integration into legacy ERP applications require careful
analysis. We have seen more choices, more confusion, more
incompatibilities and increased lack of understanding for
the end-to-end application integration. However, this
proliferation of application development tools will see
some consolidation. More tool developers want to work to
introduce mobile device specific and wireless-specific
support in application servers like IBM’s WebSphere,
Oracle 9i and BEA’s WebLogic. In fact, enterprise
professionals should use this as a cue to select
development tools.
In terms of applications and applets running on mobile
devices, Java’s J2ME became a preferred platform for
development, over and above a number of other development
platforms, including Microsoft’s Windows CE component of
.NET. It garnered extensive developer support and is
intrinsically a better choice for diverse hardware and
software environments that exist in handheld arena. This
trend will continue. Microsoft’s .NET initiative will
gradually get more flesh, improve and become a serious
option for Microsoft-centric environment.
REFERENCES
[1] CNet, “Wireless Jungle still waiting for its
king”.
http://news.com.com/2100-1033-252009.html
[2] MobileInfo, “Mobile Computing Market Outlook
Reports”.
http://www.mobileinfo.com/Reports/
StrategyA_cellphone.htm
[3] Strategy Analytics
http://www.strategyanalytics.com
[4] TheRegister.com, “Euro Q2 smartphone sales sky
rocket”
http://www.theregister.co.uk/content/68/
31880.html
[5] Jonathan Allin, “Java, Symbian, and the
Wireless Market: Questions & Answers”.
http://www.developer.com/ws/other/
article.php/1574201
[6] C. Enrique Ortiz, “Introduction to Symbian OS for Palm OS developers”.
http://www.metrowerks.com/pdf/
IntroSymbianOSforPalmDevelopers.pdf
(current 2003).
[7] Martin de Jode, Colin Turfus,
“Symbian OS System Definitions v.1.2.1”.
http://www.symbian.com/developer/techlib/
papers/SymbOS_def/2003-08-05_SyOSDef.pdf
(current August 2003).
[8] Nokia, “Developer Platform 2.0 for Series 40: Frequently Asked
Questions”.
http://www.forum.nokia.com/
ndsCookieBuilder?fileParamID=3780
(current 2003)
[9] Nokia, “Developer Platform 2.0 for Series 60: Frequently Asked
Questions”.
http://www.forum.nokia.com/
ndsCookieBuilder?fileParamID=3792
(current 2003).
[10] Nokia, “Developer Platform 2.0 for Series 90: Frequently Asked
Questions”.
http://www.forum.nokia.com/
ndsCookieBuilder?fileParamID=3793
(current 2003).
[11] Symbian, “Symbian UIQ Product Sheet”.
http://www.symbian.com/technology/UI/
UIQ_Product_Sheet.pdf
(current 2003).
[12] DevX.com, “What’s NEW in BREW
Version 2.0”.
http://www.devx.com/Brew/Article/10187
[13] QUALCOMM Press, “QUALCOMM Selects IBM's J9
CLDC MIDP-Compliant Java Virtual Machine on the BREW
Platform”
http://www.qualcomm.com/brew/news/
press_room/2001/pr/11_14_01.html
[14] ZDNet, “BREWing up Business”
http://www.zdnet.com.au/newstech/os/
story/0,2000048630,20266010,00.htm
[15] Qusay Mahmoud, Learning wireless Java,
O'Reilly, 2001, p.10.