Professional Documents
Culture Documents
Development Platforms For Mobile Applications:: Status and Trends
Development Platforms For Mobile Applications:: Status and Trends
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.
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
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
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
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
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
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
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
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
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)*
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
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)
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
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 JavaF 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.
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
computingnow.computer.org