Mobile Development Environments

friendlybathMobile - Wireless

Nov 12, 2013 (3 years and 6 months ago)

61 views

Mobile Development
Environments

Juha Linnanen

Evtek

11.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?