Mobile Development Environments
Juha LinnanenEvtek11.10.2006
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Introduction
Smartphones (advanced capabilities). One of the key features of a smartphone is extendability
through third party applications. Development environment will largely depend on the OS
and other features of the specific phones. Focus:
Define different mobile development environments Find out their strengths and weaknesses
Smartphone OS Market Share
Worldwide situation Big players:
Nokia (Symbian) SonyEricsson (Symbian) Motorola (Linux) Samsung (Linux) Microsoft (Windows)
Symbian is even more dominant in Finland
Linux doing well in Asia Windows doing well in United
States
OS Market share 2005
6 %
13 %
4 %
23 %
54 %
Symbian Linux
Windows Palm
Other
Device volumes for developing
800 Million handsets sold totally.
Devices able to run: 400 Million – Java (J2ME) 80 Million – Symbian 36 Million – Native Linux C/C+
+ 20 Million – Windows Mobile
(C# or VB.NET) Browser based is cross-
platform solution. Flash Lite can be run when a
standalone player is found.
OS Developer environment support
Symbian: Native Symbian (C++) Java (J2ME) Flash Lite Browser based
Linux: Native C/C++ Java (J2ME) Browser based
Windows: C# VB.NET Browser based
Others: BREW Python
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Java (J2ME)
Found also in non smartphone OS’s, such as Nokia Series 40 phones.
Java platform: Java language Java virtual machine Java APIs
Configuration Profile External APIs
Ideal for an all-around solution, if the J2ME platform provides the needed functionality
KVM (Kilo virtual machine)
Complete Java runtime environment for small devices
Small static footprint of 50 to 80 KB As complete and fast as possible
J2ME Configurations
Configurations detail a base set of APIs that can be used with certain class of device.
CLDC (Connected Limited Device Configuration) For small wireless devices with network
connections. Support found in today’s mobile phones.
CDC (Connected Device Configuration) Subset of J2SE, containing almost all the libraries
that are not GUI related. It is richer than CLDC. For larger devices with a robust network connectios.
Profiles
A profile builds on a configuration but adds more specific APIs to make a complete environment for building applications
MIDP (Mobile Information Device Profile) Defines device specifics (screen size, input, memory
size) Build on top of CLDC Covers area omitted by the CLDC
MIDP 1.0 and 2.0 available
MIDP functionality
MIDP covered areas: Application life cycle management (classes and
methods for starting, pausing and destroying applications).
User interface and events (classes and interfaces for creating GUI components).
Network connectivity (extends CLDC connectivity classes to allow HTTP connections).
Storing data on device (implements record-based database management system).
MIDP versions
MIDP 1.0 is the base version. MIDP 2.0 is downward compatible with MIDP 1.0 2.0 improves and enchances the profile in many
significant ways (threading, security etc.) Applications written for MIDP are called MIDlets. Almost all new mobile phones come with a MIDP
implementation.
J2ME additional APIs
File I/O and PIM (JSR-75) Bluetooth API (JSR-82) Mobile Media API (JSR-135) Location API (JSR-172) Others (SIP API, Web Services API, 3D
Graphics API, Scalable 2D Vector Graphics API and so on)
J2ME Strengths & Weaknesses
Strengths: Device support Lack of learning curve Easy GUI
development Multiple IDE’s Multiple emulators Community support
Weaknesses: Sandbox model API fragmentation Model differences Non native GUI No access to all
native resources Not as fast as native
J2ME Future
MIDP 3.0 ? MSA (JSR-248) to avoid API fragmentation. Rich UI support matching native capabilities.
Swing (Sun) eSWT (Nokia)
Enables platform extensions after manufacturing. Device Remote Management. Service oriented modularity.
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Symbian
Symbian is an independet company whose mission is to establish Symbian OS as the world standard for mobile systems.
Symbian sells licenses to the phone manufacturers. Buyers are mostly the same companies that own Symbian Ltd.
Symbian OS History
Versions (1/2): Epoc (v5) Symbian OS 6.0, 6.1 Symbian OS 7.0
(S60/UIQ 1st Ed.) Symbian OS 8.0, 8.1, 8.2
(S60/UIQ 2nd Ed.)
Epoc V5(Ericsson R380)
Symbian 6.1(Nokia 7650)
Symbian 7.0(Ericsson P800)
Symbian 8.1(Nokia 6680)
Symbian OS History (continued)
Versions (2/2): Symbian OS 9.1 (S60 3rd Ed.) Symbian OS 9.2 (S60 3rd Ed. FP1
Q1/2007) Symbian OS 9.3 already coming.
Symbian 9.1(Nokia N91)
Symbian Software Platforms
Software platform offers a GUI layer to the operating system.
It usually consists of a suite of libraries and standard applications.
There are two main Symbian software platforms: S60 (Nokia), which is designed to be used with only
one hand. UIQ (SonyEricsson), which is designed to be used
with a touchscreen (two hands). Both support Symbian C++ and Java (J2ME).
Symbian Development
Binary break between S60 2nd and 3rd Edition.
Symbian signing. Formerly hard to find the right tools. Now free Carbide.c++
Eclipse based Nokia SDK support
Symbian Development
Strengths: Access to native APIs Native GUI Performance
Weaknesses: Proprietary formats Learning curve Development time Documentation
Ideal for speed-critical applications with a long timeline and options for significant development investment.
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Flash Lite
Flash Lite is a subset of Flash
developed for mobile devices. Flash combines easy GUI development
(vectors) to a scripting language. Some of the current phones support
Flash Lite 1.1 (2004->) 1.1 based on Flash 4, which has significant limitations
(such as Actionscript 1.0, no persistent data etc.)
Flash Lite 2.0
2.0 (2006->) improves the platform to cover these shortcomings Based on Flash 7 Actionscript 2.0 Device video support Ability to store and retrieve persistent data XML and media support New Mobile Emulators
Flash Lite Strengths & Weaknesses
Strengths: Rapid development Development like in
normal Flash Graphical interface Vectors Powerful scripting
Weaknesses: Phones missing the
standalone player Power hungry Complex is complex!
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Browser based
Strengths: Cross-platform Dynamic content Ease of development
Weaknesses: Latency Network data rates Device accessibility GUI development
Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base
Example: Sonera vs. Elisa MobileTV
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Linux
Although Linux worlwide OS market share was 23%, it is yet to make a large impact in Europe.
Linux smartphones have had the greatest success in Asia (China).
Support for native C/C++ applications and J2ME applications.
OS comes with different flavors (QTopia, Montavista, Mobilinux, Bluecat etc.)
Each have their own implementation of Linux and atleast some differences in developing.
Montavista DevRocket
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Windows Mobile
Proprietary platform. Most of the Windows Mobile phones sold
in United States. Support for C# and VB.NET development. Visual Studio 2005 is the development
environment for Windows Mobile. Does not support Java (J2ME) out of the
box.
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Other environments - BREW
CDMA –based device support (North America and Japan)
Software for the BREW-enabled handsets can be developed in C/C++
Competes mainly with J2ME. Mostly used to develop small application, such as games.
Strengths: Standard APIs Game friendly Business ($$$)
Weaknesses: Development costs Support No compression
Other environments - Python
High level programming language. Ease of coding and readability over
performance. "Speed is not a problem until it is a problem". Especially good for prototyping. Mobile phones need a runtime library
(available for S60) in order to run Python applications.
Agenda
Introduction Java (J2ME) Symbian Flash Lite Browser based Linux Windows Mobile Other environments Conclusion
Conclusion
Development field is widely fragmented. Rapid changes makes it even harder. Careful planning needed when choosing a
development environment. Alot of testing and sweating needed. Already possible to create future
applications today.
Future phones
Nokia N95 GPS HSDPA (3.5G) WIan 5 MPixel camera Bluetooth (A2DP) TV-Out Symbian OS 9.2 (S60 3rd ed. FP1) Support of all today’s Java APIs Flash Lite 2.0 integrated
Thank you.
Questions?