You are on page 1of 11

FEATURE: MOBILE APPLICATIONS

Development lier research,1 technical specifications,


white papers, and an informal survey of
32 mobile-application developers with

Platforms
hands-on experience using the plat-
forms we reviewed. Most importantly,
we developed a simple game application

for Mobile
and implemented it on all four platforms
as a case study for highlighting the main
characteristics and relative merits and
shortcomings of the four platforms.

Applications: We describe the general results of


this comparison as well as details from
the game application’s development. We

Status and Trends


summarize the results from all sources
in a table and conclude with our assess-
ment of how appropriate the different
platforms are with respect to critical
Damianos Gavalas and Daphne Economou, University of the Aegean application-development requirements.

Four Mobile-
Application Platforms
// A comparison of four popular runtime environments Numerous development platforms are
clarifies the options available for developing applications available for handheld devices, includ-
ing native environments such as the
that run on resource-constrained mobile devices. //
Symbian, OpenC, iPhone, and Palm
operating systems; Web runtimes such
as widgets; and runtime environments
such as Python, Lazarus, Brew, and the
four we review here—Java Mobile Edi-
tion (ME), .NET Compact Framework
(CF), Flash Lite, and Android—which
currently enjoy the largest developer
and deployment bases. Figure 1 sum-
marizes the software stacks for these
four platforms.
MOBILE DEVICES HAVE STEADILY Although the choice of develop-
gained acceptance as a multimedia ment platform is largely market-driven, Java ME
platform. Current tools offer applica- it also depends on the characteristics This subset of the Java platform pro-
tion developers options to use various of available platforms and the require- vides a certified collection of Java APIs
technologies—for example, Java, Open ments of particular applications. To for developing software for resource-
C, Python, Flash Lite, XHTML/CSS, illuminate the status and trends in constrained devices such as cell phones,
JavaScript, and Mobile Ajax—to imple- current development platforms, we re- PDAs, and set-top boxes (http://java.
ment highly functional mobile appli- viewed and compared four popular sun.com/javame).
cations. Content developers can work mobile-application runtime environ-
with audio, video, multimedia messag- ments with respect to various quantita- Features. Java ME runs on top of a
ing, and Flash to create rich and com- tive and qualitative criteria. We based kernel-based virtual machine (KVM),
pelling mobile content. the comparisons on data from ear- which allows reasonable, but not

0 74 0 -74 5 9 / 11 / $ 2 6 . 0 0 © 2 0 11 I E E E J A N U A R Y/ F E B R U A R Y 2 0 1 1 \\ I E E E S O F T W A R E  77
FEATURE: MOBILE APPLICATIONS

complete, access to the underlying de- application development. dors are then free to develop their own
vice’s functionality. Java ME supports • Mobile Information Device Profile implementations.
cross-platform development through (MIDP), a specification for using
configurations and profi les: Java on embedded devices such as Review. Java ME is the dominant mo-
mobile phones and PDAs. MIDP is bile-software platform with respect
• A configuration defi nes the mini- part of the Java ME platform and to its installation and developer base.
mum Java VM features and library sits on top of CLDC. However, the Java language’s “write
set for a horizontal family of de- once, run anywhere” axiom doesn’t
vices—that is, devices with similar Java applications developed over apply to Java ME.2 Developers must
processing and memory limitations, CLDC/MIDP are referred to as MID- provide slightly different application
user interface requirements, and lets and are typically packaged in Java versions to address variations in JSR
connection capabilities. archive (JAR) fi les. sets and implementations across a wide
• A profile comprises libraries spe- Java ME is designed to be cross-plat- range of device capabilities and choice
cialized in the unique characteris- form, so specification and implemen- of profi les, configurations, and APIs.
tics of a particular device class. tation are two separate processes. The This requirement often results in doz-
Java Community Process (JCP) refers ens of executables for a given title—
All Java ME-enabled mobile devices to a formalized specification process a phenomenon referred to as device
currently support the following config- that lets interested parties get involved fragmentation, which considerably in-
uration and profi le specifications: in defi ning Java platform versions. JCP creases operational costs over a prod-
uses Java Specification Requests (JSRs) uct’s life cycle. Fragmentation restricts
• Connected Limited Device Config- to document proposed additions to the the devices that Java ME applications
uration (CLDC), a framework for Java platform. A committee of mobile- can reach and suggests that it’s more
Java ME applications targeting re- solution providers specifies a new Java suitable in vertical applications that
source-constrained devices. CLDC ME standard API as a fi nal JSR that target devices with similar capabilities
contains a strict subset of the Java includes source code for a reference and Java API support.
class libraries needed for mobile- implementation of the technology. Ven- Nevertheless, by targeting individ-
ual operating systems, developers us-
FIGURE 1. Software stacks for the reviewed mobile-application development platforms. ing Java ME have access to a large set
Comparison of operating systems, runtimes, application frameworks, and development of well-defi ned and mature JSRs. Java
languages. applications targeting the Symbian plat-
form, for example, can reach about 70
percent of the world’s smartphones.
Java .NET Compact More than 80 JSRs provide MIDlet de-
Micro Edition (ME) Framework (CF) Flash Lite Android
Development velopers a rich set of additional technol-
Java C#, VB.NET ActionScript Java
language ogies, although MIDlet programming
isn’t straightforward and requires seri-
Optional packages, Unique .NET CF Window/Telephony
JSRs: Media API, classes, /Location/...
ous Java development skills.
Location API, 3D device-specific Manager (Android Commonly available JSRs that ex-
and 2D Vector and third-party SDK) tend MIDP 2.0 on the Symbian platform
Application Graphics API, … extensions
ActionScript API C/C++ libraries include the Bluetooth API (JSR 82), the
framework
Profile (for example, Core (2D/3D graphics, Wireless Messaging API (JSR 205), and
MIDP 2.0) components media and database the Mobile 3D Graphics API (JSR 184).
(subsets of the libraries, and so on
Configuration full .NET class
(CLDC) library) Core Java libraries .NET CF
Designed for applications on Windows
Runtime Kernel-based virtual Common Language Flash Lite player Dalvik virtual Mobile, .NET CF is a subset of Mi-
machine (KVM) Runtime (CLR) runtime machine
crosoft’s full .NET platform. 3 .NET
Operating Symbian OS, Symbian OS, CF preloads the Common Language
Palm OS, Windows CE, Windows Mobile, Linux kernel
system Runtime (CLR) engine in the device’s
BlackBerry OS, ... Windows Mobile Qualcomm’s Brew
memory to facilitate mobile-application
deployment. CLR provides interoper-

78 I E E E S O F T W A R E // W W W. C O M P U T E R . O R G / S O F T W A R E
ability with the underlying device’s op- vanced user interface components, net- ploy rich content and interactive inter-
erating system, allowing the integra- work connectivity, data management, faces to mobile devices.
tion of native components into mobile XML Web services, and so on), and fa-
applications. miliar APIs from the full .NET frame- Features. A Flash Lite application
work, such as the Windows Forms stores its contents and GUI descrip-
Features. In principle, the .NET CF controls. These features ease the tran- tion in the vector-based SWF graphics
runtime is analogous to the Java virtual sition for desktop developers to mobile and animation format. It implements
machine (JVM). Instead of writing na- applications. its application and presentation logic in
tive code for the underlying operating Using a runtime system for intermedi- ActionScript.
system, .NET developers write man- ate (managed) code implies relatively low The number of original equipment
aged code, which targets a managed ex- execution performance. However, unlike manufacturer (OEM), operator, and
ecution environment. Microsoft origi- Java ME, .NET CF is language-agnostic developer adopters of Flash Lite is in-
nally designed and developed the .NET and simply specifies Common Intermedi- creasing rapidly worldwide. Flash Lite

UNLIKE JAVA ME, .NET CF IS LANGUAGE-AGNOSTIC


AND SIMPLY SPECIFIES CIL INSTRUCTIONS.

platform with support for multiple lan- ate Language (CIL) instructions. .NET- 1.1 supports Flash 4 and ActionScript
guages and operating systems, aiming supported languages compile to the same 1.0. Flash Lite 2.0 and 3.1—based on
to reach an extended developer base and CIL, so the .NET CF runtime can exe- Flash Player 7 and 9, respectively—sup-
to reuse existing libraries. However, the cute them. port ActionScript 2.0. No support is
.NET CF development tool, Visual Stu- .NET CF demonstrates API-level yet available for Flash Player 9-compat-
dio (VS.NET), currently supports only consistency and compatibility with the ible content based on ActionScript 3.0.
two major .NET languages: C# and full .NET platform. This design ap- All versions support the World Wide
Visual Basic (VB.NET). Furthermore, proach has had unforeseen memory Web Consortium (W3C) Tiny stan-
it restricts operating system support footprint costs, but .NET CF neverthe- dard,4 a mobile profile of W3C’s scalable
to Windows platforms, which repre- less represents a fast-paced implemen- vector graphics (SVG) recommendation.
sent only a small part of today’s mobile tation driven by a powerful vendor.
-device products. Developers know the hardware speci- Review. The Flash Lite platform is a
The core components are a subset fications to program against and can reasonable choice for graphics-intensive
of the full .NET framework—roughly assume the availability of certain na- phone and PDA applications. Industry
30 percent of its classes and function- tive software, such as Windows Media adoption has increased because devel-
ality. Some classes exist in both .NET Player. It therefore offers satisfactory opers skilled in Flash for desktop appli-
and .NET CF, but the .NET CF ver- integration with device-specific func- cations can easily switch to Flash Lite
sion doesn’t necessarily support all the tionality—telephony, short-message for mobile applications. Rapid develop-
full version’s class members (proper- service, subscriber-identity-module ment is a primary benefit of Flash Lite.
ties, methods, or events). Many classes card access, Bluetooth, and so on—and It’s easy to learn and easy to migrate
aren’t implemented at all, and others doesn’t exhibit Java ME’s fragmenta- Flash applications, and it includes a
are only partially implemented. Unique tion problem. On the other hand, .NET rich set of designer/developer tools. Ad-
.NET CF classes address device-specific CF targets a limited set of Windows ditionally, it offers rich media support
and third-party extensions. end devices, and the VS.NET develop- (images, video, sound, and animation),
The .NET CF user interface design ment tools include license costs. a relatively broad runtime installation
is based on a rich subset of .NET Win- base, and small deployment files based
dows Forms. Adobe Flash Lite on vector graphics. As of Flash Lite 2.x,
Flash Lite (www.adobe.com/products/ it supports compressed SWF, and Flash
Review. .NET CF is comparable to flashlite) is a proprietary technology, Lite 3.0 adds support for the popular
Java ME with respect to providing a popular as a multimedia and game pro- native Flash video (FLV).
managed runtime environment, rich li- gramming platform. Adobe created it Currently, Flash Lite is mostly suit-
braries and components for reuse (ad- specifically to help vendors rapidly de- able for creating animations, casual

J A N U A R Y/ F E B R U A R Y 2 0 1 1 \\ I E E E S O F T W A R E  79
FEATURE: MOBILE APPLICATIONS

(a) (b) (c) (d)

FIGURE 2. Screenshots related to the Snake game implementation developed in (a) Java ME, (b) .NET CF, (c) Flash Lite, and (d) Android.
See Table 1 for comparison data on the game implementation.

games, mobile Web-based Flash ap- devices includes an operating system, tion (SE) 5.0 library, implying reduced
plications, front-end interfaces, and middleware, and key applications. migration cost from Java desktop ap-
device-specific content (wallpapers, plications. It also supports several third-
screen savers, and so on). However, it Features. Android applications are pri- party libraries. Similarly to Java ME,
isn’t suitable for developing full-fledged marily written in Java and compiled application development is powered by
stand-alone applications, mainly be- into Dalvik executable (DEX) format, a popular Java integrated development
cause it lacks the powerful mobile-ori- custom byte code. Each application ex- environments (IDEs) such as NetBeans
ented APIs of the Java ME platform. ecutes on its own process, with its own and Eclipse. Android provides inherent
Flash Lite exhibits relatively poor instance of the Dalvik virtual machine. support for modular service-oriented ap-
graphics performance, partly because Dalvik runs DEX fi les, which are con- plications and interapplication commu-
of the complex processing required for verted at compile time from standard nication. Java ME’s MIDP 3.0 similarly
vector graphics. It ships with an exten- class and JAR fi les. DEX fi les are more supports inter-MIDlet communication.
sive toolset (Adobe CS5, Adobe Device compact and efficient than class fi les. New platform releases introduce
Central), but the toolset requires a li- Developers have full access to all the many new user and developer fea-
cense fee. frameworks and APIs that the core ap- tures—for example, account synchroni-
Although Flash Lite’s low-level de- plications use and to Google-developed zation, improved media-playing perfor-
vice integration might seem to be a limi- software libraries. Android’s software mance, and database and geolocation
tation, third parties offer low-level de- architecture is designed to simplify API support—but also raise fragmenta-
vice APIs that support the development component reuse. Any application can tion concerns. Phones running Android
of innovative applications. For example, publish its capabilities, and any other 1.0, 1.5, 1.6, and 2.0 as applications
the KuneriLite toolkit extends Flash application can then use those capabili- might have trouble working smoothly
Lite capabilities in the Symbian plat- ties, subject to security constraints en- across all the operating system versions.
form. The cost, of course, is greater be- forced by the framework. The platform’s openness in the targeted
cause of fragmentation issues and mem- The Android software development device stacks aggravates the fragmenta-
ory footprint. kit (SDK) supports authoring applica- tion problem.
tions with rich functionality. Like the
Android iPhone, it can handle touch screens, ac- A Mobile-Game Case Study
Google launched Android (http://code. celerometers, 3D graphics, and GPS as We implemented four identical ver-
google.com/android) in 2007, to ad- well as collaboration among applications sions of a toy application, a game called
vance open standards for mobile de- like email, messaging, calendars, social Snake (see Figure 2). The implementa-
vices. Android is an Apache free-soft- networking, and location-based services. tions let us compare the platforms with
ware platform with an open source respect to development effort and time
license for mobile devices based on Review. Android supports a relatively as well as several technical issues, such
Linux. Its software stack for mobile large subset of the Java Standard Edi- as sound reproduction, still image dis-

80 I E E E S O F T W A R E // W W W. C O M P U T E R . O R G / S O F T W A R E
Technical issues related to the Snake game implementation.
TABLE 1

Technical issue Java ME .NET CF Flash Lite Android

Development effort Port GUI from Swing to liquid-crystal display Adapt GUI to use Adapt GUI Make changes to interfaces
(desktop to mobile user interface (LCDUI) classes; convert the Windows Forms to screen implemented and parent
porting) main() method of the base class to the MIDlet’s controls, and switch size classes extended; switch the
startApp(); convert Java Database Connectivity the database to database to SQL Lite; specify
(JDBC)-based persistent storage to Record SQL Server Mobile the GUI in an XML fi le, using
management system (RMS) Edition the DroidDraw GUI designer

Lines of code ~1,100 ~800 ~600 ~900

Lines of code ~400 ~150 ~50 ~200


modifi ed to port the
desktop application

Deployment 29 Kbytes 63 Kbytes 12.6 23 Kbytes


application size Kbytes

play, menu and application interface driving force for the mobile-applica- approach taken in Flash Lite. How-
design, key events handling, memory tion market. Java ME is currently the ever, the TiledLayer and GameCan-
use, deployment fi le size, and reus- de facto standard for downloadable vas classes of the Java ME Game API
ability of code authored for equivalent cell phone games,4 particularly because were extremely useful for painting the
desktop applications (see Table 1). it has a game API. Furthermore, Java game’s landscape and conveying the
To ensure fair comparisons, we fo- ME is the only framework providing a snake’s movement.
cused on evaluating the particulari- low-level 3D graphics API. Flash Lite .NET CF and Android applications
ties of mobile-application development is a popular gaming platform, mainly were easier to develop because of their
rather than the different programming because of its development speed and improved compatibility with the full
language characteristics. Along this suitability to graphics-intensive appli- .NET and Java SE frameworks, respec-
line, we fi rst implemented the desktop cations. Flash Lite 3.0 focuses more tively. The use of SQL databases in
game application and then migrated the on video and multimedia support than both these platforms was also straight-
applications to the mobile platforms, game development. However, Flash forward. We adapted a few C# method
reusing source code wherever possi- Lite is ideal for integrating games in invocations for .NET CF because it
ble—that is, we ported Java SE code to webpages—similar to developing Flash didn’t support the corresponding librar-
Java ME and Android, C#.NET code movies for desktops. .NET CF and ies. Android didn’t require such modifi-
to .NET CF, and Flash (ActionScript) Android haven’t yet gained significant cations. Furthermore, sound support
code to Flash Lite. The game used rela- market share in game development. was poor in .NET CF, handling only
tively simple graphics to convey snake Desktop-to-mobile application port- uncompressed sound playing, which in-
body movements in response to key- ing was more labored in Java ME. creases the application size. The Flash-
pressing events. The implementation Tools like JDiet (a Java SE 1.4-to-Java to-Flash Lite migration was relatively
included a short sound fi le that played ME CLDC converter) can be useful but effortless because we used the same Ac-
when the snake ate food. It also offered don’t support GUI conversion. We de- tionScript code in both cases.
pause, resume, and change functions signed the MIDlet’s menu templates us- We had to translate desktop ap-
to adapt the snake’s speed, and it kept ing the Java ME Polish tool collection plication key events to the respective
high scores and game state in the de- (www.j2mepolish.org), which includes mobile phone’s keyboard events in all
vice’s persistent storage. build tools for creating application bun- platforms. The GUI design was rela-
The smoothness and expressive- dles for multiple devices and locales; a tively easy using available Visual GUI
ness of the snake’s movement largely device database that helps adjust appli- builders; for Android, we had to get
depends on the device’s characteristics cations to different handsets; tools for this tool through the third-party Droid-
(screen resolution, screen frame rate, designing GUIs using simple CSS text Draw builder. Notably, the separation
and processor frequency). We weren’t fi les; and utility classes. We had to port of the program logic from the GUI de-
able to quantitatively assess these char- JDBC-based storage—for example, to sign proved useful for all platforms,
acteristics on the available platform store game state or scores—to RMS, letting us use the same game logic
emulators. which isn’t a full-fledged database sys- classes for both the desktop and mobile
Mobile gaming has been a major tem but is similar to the shared-objects applications.

J A N U A R Y/ F E B R U A R Y 2 0 1 1 \\ I E E E S O F T W A R E  81
FEATURE: MOBILE APPLICATIONS

Platform Comparison Major players in the mobile-application Java­F X Mobile (http://javafx.com), a


Table 2 evaluates the reviewed platforms industry (such as platform vendors, de- new platform and language with Rich
in five qualitative and quantitative ar- vice manufacturers, and operators) can Internet Applications (RIA)-friendly
eas: software architecture and techni- play a critical role in the war against features, including a declarative syntax
cal issues, application development, fragmentation. of the JavaFX Script language for GUI
capabilities and constraints, developer Java ME is undoubtedly the plat- development. JavaFX Mobile lets devel-
communities and market success, and form with the broadest deployment opers build expressive interfaces while
development tools. base and still maintains the largest reusing existing back-end Java code. It
The data reflects our product re- market share, yet it’s the platform most also lets development team members
views and development experience, affected by fragmentation and so might with no programming experience, such
both prior to and after the Snake game be displaced by alternative platforms. as designers and graphic artists, create
implementation. It also factors in re- Sun Microsystems has published a set graphics-intensive front ends for mo-
sults generalized from an informal on- of guidelines to reduce the practice of bile applications. However, OEMs will
line survey we conducted of 32 mobile- generating distinct executables for each decide JavaFX Mobile’s success by the
application developers. These results phone.6 Some tools for resolving Java support they offer, for example, by in-
are indicated by an asterisk in the is- ME device fragmentation are already tegration of its binaries and runtime on
sue description. For each platform, at available (for example, NetBeans Mo- mobile handsets.
least seven developers participated in bility Pack 5.5 for CLDC), but there is .NET CF will probably maintain
the survey, which included 16 ques- still a long way to go. its developer base as long as Windows
tions regarding their experience with Along the same line, the Mobile Ser- handhelds remain in the picture. It’s a
the platform. The survey is available at vices Architecture (MSA) has emerged powerful platform for programming
http://mobileapps.limeask.com. Some as an industry standard to reduce frag- and accessing native components of
quantitative information derived from mentation and give developers a con- Windows-compatible PDAs and smart-
a compilation of the surveys and not sistent Java ME platform. In addition phones. However, its market share
discussed here is available at http:// to specifying what component JSRs isn’t likely to increase because porting
www2.aegean.gr/dgavalas/en /mob_ a compliant device must include, the it to popular phone operating systems
survey.pdf. MSA also clarifies behavioral require- is cumbersome. Specifically, it requires
ments to improve JSR predictability implementing a platform-adaptation
Platform Status and Trends and interoperability. The MSA defines engine to interface between the CLR
In current practice, devices vary along two stacks: a full stack that comprises and the operating system.7
so many axes that it’s almost impos- 16 JSRs (JSR 249), and a subset of The release history of Flash Lite in-
sible to write a single version of a mo- eight JSRs (JSR 248). JSR 248 is being dicates that Adobe has concentrated
bile application to run on a broad range pushed ahead of JSR 249 to help devel- more on supporting multimedia than
of devices. Fragmentation increases opers get an earlier start on MSA-com- defining a powerful API for develop-

DEVICES VARY ALONG SO MANY AXES


THAT IT’S ALMOST IMPOSSIBLE
TO WRITE A SINGLE VERSION OF A MOBILE APPLICATION.

the production effort in almost the en- pliant applications. JCP has recently ing applications with rich functional-
tire software life cycle—driving up the approved JSR 248, but its adoption by ity. Despite the effort to establish Flash
cost, lengthening the time to market, OEMs remains to be seen. Lite as a gaming platform, it lacks APIs
and narrowing the target market. Bet- Java ME’s competitiveness against or classes specifically targeting game
ter standardization (for example, fewer platforms that target graphics-heavy development. For example, Flash Lite
optional APIs and more detailed speci- applications, such as Flash Lite, will 3.0 doesn’t support the BitmapData
fications) and stricter enforcement of also depend on technologies that en- object that’s part of Flash 8 and use-
standards (for example, using API veri- able expressive, feature-rich content ful for game development. It also needs
fication initiatives and technology com- on mobile devices. Along this line, Sun to improve its sound handling. Fur-
patibility kits) could help in this regard. Microsystems has recently released thermore, comparative studies indicate

82 I E E E S O F T W A R E // W W W. C O M P U T E R . O R G / S O F T W A R E
Comparison of programming platforms in five areas.
TABLE 2

Issue description Java ME .NET CF Flash Lite Android

Software architecture and technical issues

Footprint ~128 Kbytes for storage of 1.55 Mbytes on 450 Kbytes for the 3 Mbytes
kernel-based virtual machine Windows Mobile-based core library of Flash
and associated libraries Pocket PC 2000/2002; Lite 2.1; 374 Kbytes
1.35 Mbytes on for Flash Lite 3.1
Windows Mobile for
Pocket PC 2003 or
Windows CE .NET
devices

Runtime memory < 0.5 Mbytes ~ 0.5 Mbytes 2–4 Mbytes Minimum 32 Mbytes of
requirement RAM

Memory Automatic memory management Automatic memory Garbage collection Automatic memory
management provided by the traditional management provided executed management handled by
garbage collector, which by Common Language automatically every Dalvik’s garbage collector;
deallocates memory occupied Runtime (CLR); the minute or whenever garbage collections might
by objects that the program no CLR garbage collector an application’s noticeably decrease
longer uses manages the allocation memory use performance
and release of memory increases by 20
for an application percent or more

Device support All devices support Connected Pocket PC 2000, Mobile phones and Mostly HTC devices (Magic,
Limited Device Confi guration Pocket PC 2002, PDAs from major Hero, Tattoo); also T-Mobile
(CLDC), Mobile Information Windows Mobile manufacturers such (G1, Pulse), Motorola Dext,
Dance Profi le (MIDP) 2003-based Pocket as Fujitsu, Hitachi, Samsung Galaxy i7500,
(practically, lacks support only PCs and smartphones, LG, Mitsubishi, Acer Liquid, Sony Ericsson
for Windows Mobile-based embedded systems Motorola, Nokia, Xperia X10; Android
Pocket PCs) running Windows CE Panasonic, Samsung, 2.0-compatible handsets
.NET 4.1 and later Sanyo, Sharp, and announced (Motorola,
Sony Ericsson Samsung)

User interface High-level LCDUI components, Windows Forms Nokia Flash Lite View and ViewGroup
(UI) components such as Form or List; low-level controls (vary for Feather Framework objects; DroidDraw tool
LCDUI for controlling every UI Pocket PCs and (FL 2.x), Sony serves for rapid UI design;
pixel; support for SVG (defi ned smartphones) Ericsson Adobe XD J2ME Polish enables
in JSR 287); J2ME Polish allows UI components conversion of Java ME
design along with animations (FL 1.1/2.x) MIDlets’ UI to Android-
and effects specifi ed in external compatible UI
CSS-like fi les
(CONTINUED ON P. 84)

Development Java (CLDC/MIDP) C#, Visual Basic .NET ActionScript 1.0, Java (Android SDK)
languages ActionScript 2.0

Packaging Java Application Description Cabinet (CAB) fi le SWF fi les Android package (APK) fi les
(JAD) and Java archive (JAR) installers
fi les

Deployment Over the air (OTA), Bluetooth/ OTA, Bluetooth Bluetooth, physical OTA, Bluetooth
methods IR, Wireless Application Protocol cable, OTA
(WAP) push

Server-side Java servlets, JavaServer Pages ASP.NET Mobile Flash Media Server Java servlets, JSP
technologies* (JSP) Controls (uses ActionScript 1
for server-side logic)

Persistent RMS and Perst Lite from Local database support Persistent storage Android APIs contain
storage and mObject for SQL Server Mobile through shared support for SQLite database
database support Edition; on the server objects; on the server
side, support for SQL side, support for
Server interaction with PHP
scripts and use of
MySQL database

J A N U A R Y/ F E B R U A R Y 2 0 1 1 \\ I E E E S O F T W A R E  83
FEATURE: MOBILE APPLICATIONS

Issue description Java ME .NET CF Flash Lite Android


TABLE 2 (CONTINUED)

Sound handling MP3 and whatever format the Uncompressed pulse- Sound fi les 3GP, MP3, MP4
and supported device supports code modulation (PCM) embedded within the
formats fi les only; support for SWF fi le; supports
well-known formats MP3, AIFF, AU, WAV,
(WAV, MP3, and so on) and so on; no support
offered by third parties for simultaneous
(such as Resco Audio playback of multiple
for .NET CF) sounds

2D/3D graphics All MIDP versions support the Support for BMP, JPG, Vector-based Supports PNG, JPG, and
handling and display of rasterized images (in GIF, and PNG formats; graphics includes GIF; doesn’t support SVG;
supported PNG format only); MIDP added doesn’t support SVG; support for bitmap; supports 3D graphics via
formats support for SVG (JSR 226); MIDP Direct3D mobile doesn’t provide low- the OpenGL API
3.0 adds support for GIF images; applications available level 3D graphics
support for mobile 3D graphics for Windows Mobile 5.0 API, but it’s possible
on Mobile 3D Graphics (M3G) to use a sequence
format: M3G 1.0 (JSR 184) or of images exported
M3G 2.0 (JSR 297) from a 3D tool

Application development

Learning curve* Moderate (developers need to Average (signifi cant Steep (reuse of the Average (signifi cant overlap
be familiar with several APIs overlap with the .NET same ActionScript with the Java SE platform
that aren’t part of the Java SE platform APIs) code) APIs)
platform)

Developer Large community Relatively large Relatively large Fair-sized and fast-growing
community base* community community community

Debugger Excellent Excellent Good Integrated in Eclipse;


availability stand-alone debugging
monitor also available

Cross-platform Execution on any device Windows Mobile, Excellent (supported Android only, because of
deployment supporting CLDC/MIDP, but Symbian-based by top fi ve mobile Dalvik VM
inconsistent implementations devices (via third-party manufacturers; best
across vendors necessitates tools) Web compatibility)
separate builds

Deployment Slow (fragmentation problem) Relatively fast Relatively fast Relatively fast
speed
(packaging,
installing,
testing)*

Capabilities and constraints

Functionality Varies by handset, depending Limited audio support No support for Touch screen,
on available JSRs; no high- accessing native accelerometer, GPS,
resolution pictures, no cell ID, components cell ID, interapplication
limited fi le access communication

Event model Event-handling mechanism GUI events bound Uses the powerful Inherits the Java event
based on command objects to methods through ActionScript’s event model; uses a special
multicast delegates model (movie clip class (intent) that enables
and object events) application responses to
external events, such as a
phone call

Phone data Varies by handset, depending Full None Full


access on available JSR 75, the PDA
Optional Packages

Runtime speed Average (because of Java Average (because of Below average Average because of Java
bytecode) CLR managed code) (interpreted bytecode
language)

84 I E E E S O F T W A R E // W W W. C O M P U T E R . O R G / S O F T W A R E
Issue description Java ME .NET CF Flash Lite Android
TABLE 2 (CONTINUED)

Developer communities and market success

Developer Extensive MSDN Extensive Recent, growing


community and
support*

Market Extensive (also the basis of the Average Average Potential to gain wide
penetration* Danger Sidekick Platform) acceptance, based on
the support of 34 major
software, hardware, and
telecom companies

Distribution and None (Signed Java) None (third parties can None None
licensing provide licensing)

Development tools

Integrated Eclipse, NetBeans Visual Studio .NET Adobe Flash CS4, Eclipse, NetBeans (with
development 2008, 2010 Adobe Device Central Android plug-in)
environment (IDE)
availability

Emulator Free emulator, Sun Java Bundled with IDE Bundled with IDE Free emulator
availability Wireless Toolkit

Development tool Free Free (but only basic Varies: free but Free
cost tools) limited with Motion-
Twin ActionScript 2
Compiler IDE

* Information derived mainly from compilation of online survey reports.

that Flash Lite exhibits lower perfor- expected to integrate it. Hence, its mar- droid platform. Examples include Tira
mance and frame rate while consum- ket share isn’t growing as rapidly as an- Wireless and J2ME Polish.
ing more memory than Java ME.10 On ticipated. Still, the Android developer
the other hand, Flash Lite appears a community seems to be growing— Assessments
natural choice for designing user inter- mainly in comparison to Java ME. Its On the basis of our review, we’ve as-
faces and graphically rich applications. future will largely depend on providing sessed the appropriateness of each plat-
In that sense, it lets designers into the technologies for simplifying the design form with respect to four critical appli-
mobile-development space. A promis- of multimedia-rich applications. Sun cation development requirements:
ing evolution path for Flash Lite seems Microsystems announced that Java­F X
to lie in its synergy with different ap- Mobile will be available on the An- Portability
plication platforms, bringing together droid OS. Most important will be how The diverse hardware and software
the best of diverse worlds. Recently, well Android handles fragmentation represented in today’s handheld devices
the Capuchin Project (http://developer. problems. It’s too early to answer this inevitably make portability a puzzle for
sonyericsson.com/site/global/docstools/ question now, given Android’s rela- mobile-application developers. Porta-
projectcapuchin/p_projectcapuchin. tively narrow installation base. bility primarily depends on runtime
jsp) defined a Java ME API as a bridge Because Android is a relatively support and the feasibility of achieving
between Java ME and Flash Lite. It en- young software platform, it’s strug- identical look-and-feel and functional-
ables use of the latter as the front end gling with a small number of available ity across platforms. In terms of run-
and the former as the back end of ap- applications. Google has invested in time support, Java ME is undoubtedly
plications, allowing developers to use attracting developers and preparing a the winner, followed by Flash Lite. An-
Flash tools for GUI design while still critical mass of applications prior to the droid is likely to extend its deployment
having access to all the phone services first Android phone release. Running a base, and .NET CF will probably re-
available to Java ME. large number of existing Java ME ap- main a Windows-only platform.
Android initially received an en- plications could also add value to An- On the other hand, Java ME ex-
thusiastic welcome from manufactur- droid. Along this line, some vendors hibits fragmentation in cross-platform
ers and developers, but some handset are providing porting services to con- application development. Flash Lite
manufacturers are taking longer than vert existing Java ME titles to the An- is a better choice in this regard because

J A N U A R Y/ F E B R U A R Y 2 0 1 1 \\ I E E E S O F T W A R E  85
FEATURE: MOBILE APPLICATIONS
ABOUT THE AUTHORS

DAMIANOS GAVALAS is an assistant professor in the University the assets and deficiencies of available
of the Aegean’s Department of Cultural Informatics. His research tools as developers face the increasing
interests include mobile computing, mobile ad hoc and wireless sensor
demand for applications on resource-
networks, and optimization algorithms. Gavalas has a PhD in electronic
engineering from the University of Essex, UK. Contact him at dgava- constrained devices.
las@aegean.gr.

DAPHNE ECONOMOU is a lecturer in interactive multimedia and References


hypermedia at the University of the Aegean’s Department of Cultural 1. M. Kenteris, D. Gavalas, and D. Economou,
Technology and Communication. Her research interests include col- “An Innovative Mobile Electronic Tourist
laborative virtual reality environments for learning and archaeology, Guide Application,” Personal and Ubiquitous
human-computer interaction, and multimedia application design for Computing, vol. 13, no. 2, 2009, pp. 103–118.
mobile devices. Economou has a PhD in computer science from Man- 2. S. Blom et al., “Write Once, Run Anywhere
A Survey of Mobile Runtime Environments,”
chester Metropolitan University. Contact her at daphne@ct.aegean.gr.
Proc. 3rd Int’l Conf. Grid and Pervasive
Computing (GPC 08), IEEE CS Press, 2008,
pp. 132–137.
3. C. Neable, “The .NET Compact Framework,”
IEEE Pervasive Computing, vol. 1, no. 4,
2002, pp. 84–87.
4. O. Anderson et al., Scalable Vector Graphics
(SVG) Tiny 1.2 Specifi cation, World Wide
Web Consortium (W3C) recommendation, 22
of Adobe’s strict control over its runtime the platform foundation languages will Dec. 2008; www.w3.org/TR/SVGMobile12.
5. J. Soh and B. Tan, “Mobile Gaming,” Comm.
environment. Android’s handling of frag- feel more comfortable and productive ACM, vol. 51, no. 3, 2008, pp. 35–39.
mentation remains unclear given its slow with Flash Lite’s ActionScript. Nev- 6. Sun Developer Network, “Java ME: De-frag-
adoption pace and its alternative business ertheless, the development process in mentation,” 2006; http://developers.sun.com/
mobility/reference/techart/design_guidelines.
model, which is open source yet tightly traditional platforms such as Java ME
7. A. Geffl aut et al., “Porting the .NET Compact
controlled by Google. Fragmentation and .NET CF is accelerated because the Framework to Symbian Phones-A Feasibility
isn’t an issue for .NET CF, given its nar- documentation and developer commu- Assessment,” J. Object Technology, vol. 5, no.
3, 2006, pp. 83–106.
row range of supporting devices. nity bases are extensive. 8. A. Koller, G. Foster, and M. Wright, “Java
Micro Edition and Adobe Flash Lite for Ar-
Functionality Performance cade-Style Mobile Phone Game Development:
A Comparative Study,” Proc. ACM Ann.
Java ME best serves the aim of imple- As mobile applications become more Conf. South African Inst. Computer Scientists
menting multimedia-rich full-fledged computationally intense and require and Information Technologists (SAICSIT 08),
ACM Press, 2008, pp. 131–138.
applications, such as games, through faster runtime speeds and storage I/O,
the numerous APIs (JSRs) implemented performance also becomes a critical is-
by OEMs to exploit handset capabili- sue. Metrics such as processing over-
ties. .NET CF and Android applica- head, memory consumption, frame
tions also use rather powerful APIs. rate, and deployment fi le size all de-
Flash Lite is most suitable to graphics- pend on the particular development
heavy applications. platform toolset. For example, does
it support SVG Tiny, graphics buffer-
Development Speed ing, compressed sound fi les, and so
Rapid time-to-market is a critical re- on? Java ME, .NET CF, and Android
quirement in mobile applications. achieve comparable performance,
Taking advantage of developers’ pro- whereas Flash Lite has lagged in vari-
gramming experience on desktop ap- ous benchmarks.8
plications is the safest way to ease the

E
learning curve and shorten the develop-
ment time. For instance, Java develop- ven though market and appli-
ers will fi nd a natural fit with Java ME cation requirements largely de-
and Android, Flash developers with termine the platform for mo- Selected CS articles and columns
Flash Lite, and so on. bile development, our review offers are also available for free at
Developers not familiar with any of some specific and general guidance into http://ComputingNow.computer.org.

86 I E E E S O F T W A R E // W W W. C O M P U T E R . O R G / S O F T W A R E
This article was featured in

For access to more content from the IEEE Computer Society,


see computingnow.computer.org.

Top articles, podcasts, and more.

computingnow.computer.org

You might also like