Developing for Symbian OS

mongooseriverSoftware and s/w Development

Jun 7, 2012 (5 years and 1 month ago)

406 views

Developing for Symbian OS

Andrei Tabarcea, 31.01.2011

Content

1.
History and market share

2.
Developing applications for Symbian

1.
Symbian C++

2.
Java ME

3.
Web Runtime Toolkit

3.
Publishing applications for Symbian

A Bit of History

Symbian

OS is a multitasking
smartphone

operating
system


1998


Started as a partnership between
companies such as Nokia, Ericsson, Motorola and
Psion (
Symbian

Ldt
.)


2008


Symbian

Ldt
. was bought by Nokia and
turned into
Symbian

Foundation


February 2010


Symbian

became open source


November 2010


Nokia took over the
development of
Symbian

OS and
Symbian

Foundation became a licensing
-
only
organisation

Global Market Share


Symbian is still the most
popular smartphone OS
in the world


Android is predicted to
take over the first place
by 2015

Smartphone OS Market Share Q3 2010

Source: Gartner Research

Symbian OS Does Not Exist in
the USA

Version History


Series 60 3
rd

Edition (e.g. Nokia N95,
Nokia C5
-
00)


Symbian^1 (aka Series 60 5
th

edition, e.g.
Nokia N97, 5230, 6800
XpressMusic
)


Symbian^2 (some phones from
DoCoMo

and Sharp)


Symbian^3/Symbian^4 (e.g. Nokia N8,
C6
-
01, C7
-
00, E7
-
00)

Developing for Symbian OS

Symbian

OS supports development using:


Symbian

C++ (and QT Framework)


Java ME


HTML, CSS and
Javascript

Web Runtime
(WRT)


Python


Others (Standard C/C++, Flash
Lite
,
Ruby, .NET etc.)


Developing Applications for
Symbian


Register on
www.forum.nokia.com


Install specific SDK/emulators. Options:


Symbian

emulators: S60 3
rd

edition FP1, FP2,
S60 5
th

edition, Symbian^3


Java ME emulators: WTK (Java Wireless
Toolkit), Java Platform Micro Edition SDK


Install IDE with mobility
plugins

(Eclipse,
Netbeans
, Carbide,
Aptana

Studio etc.)


Install Nokia OVI Suite for easier phone
access


Develop, build and deploy


Publish to website and/or OVI Shop

Symbian C++

Advantages:


Full access to
Symbian

API’s and phone resources


Applications are not run by virtual machine


Better debugging and profiling tools


It’s the primary language for writing
Symbian

OS

Disadvantages:


Steep learning curve


Complicated application signing process


You have to do your own memory management

Symbian C++ Particularities


Was created before C++ itself (1998)


Later C++ additions (exceptions, namespaces) are
not supported


Has some non
-
standard C++ characteristics (e.g.
own mechanism for exception handling, specific
classes for string manipulations etc.)


Most data types are defined with macros


Projects have a complex structure


There are 4 basic class types


Other particularities: leaves, traps, panics,
CleanupStack

and Active Objects instead of threads

Symbian C++ Class Types


T



Data

type

classes.


C



Heap

allocated

classes

derived

from
CBase


R



Resource

classes.


M



Interfaceclasses(‘mixins’)

Recommended IDE


Carbide.c++


Based on Eclipse IDE


Carbide.c
++ is provided in two different
tool packages:


Application Development Toolkit (ADT)
contains tools for application development,
including the IDE, debugger, and analysis
tools


Product Development Toolkit (PDT) contains
tools for contribution and product creation


Alternative: CodeWarrior


QT Framework


QT is a cross
-
platform application framework


Will be the new UI Framework of
Symbian

OS


Development company (Qt Development Frameworks) is
owned by Nokia


Easy porting to
Maemo

OS is aimed


Best chance to save the future of
Symbian

OS


Development can be done with Carbide C++ or QT
Creator IDE

Java ME

Advantages:


Easier to develop


Compatibility with other platforms (theoretical)


Garbage Collector takes care of memory management


Certification is simpler

Disadvantages:


Light version of Java


Access to some resources is restricted (even with certification)


Different implementations of Java Virtual Machine on different
phone models


Bad memory management


Default UI library (
lcdui
) is very restricted and difficult to
customize (needs use of an external library such as LWUIT)


Default UI programming pattern is not suited for big projects

Recommended IDEs

Eclipse vs.
NetBeans
:


Eclipse is faster


Carbide.c
++ is a modified version of Eclipse


NetBeans

has better editors (screen editors,
flow editors)


NetBeans

has better support for sharing code
between projects

Emulators

Symbian

emulators
vs

Sun Java Emulators


Sun Java emulators are much faster and
use less disk space/resources


Sun Java emulators simulate ideal case


Symbian

emulators simulate how the
application actually runs on a phone


Symbian

emulators have some stability
issues

Web Runtime Toolkit Widgets

Advantages:


Use of HTML/CSS/
Javascript

allows easily
creating good interfaces


Easy access to Nokia API’s such as OVI Maps

Disadvantages


Few models support it (since S60v5)


Main purpose is to develop home
-
screen
widgets (focused web applications)


Restrictions in using HTML and
Javascript


Restrictions in using some resources

Publishing Applications for
Symbian OS


Options:


Publish through own website


Publish through
Ovi

Store


1
-
time publisher registration fee of 1



Nokia offers a 70% revenue share of gross
sale (as of 2010)


Now Nokia offers for free:


Java Verified signing for
Jave

ME apps


Express signing for
Symbian

C++ apps

Application signing for
Symbian OS

Andrei Tabarcea

01.02.2011

Java ME

Steps:


Add which permissions to acquire in .
jad

file
(
javax.microedition.io.Connector.http
)


Get code certificate from a trusted authority:


Verisign

-

http://www.verisign.com/products/signing/code/


Thawte

-

https://www.thawte.com/code
-
signing/index.html



Sign the .jar file using IDE or command line
utilities

Buy Certificate


Generate a C
ertificate

S
igning

R
equest

(public key generated by IDE)


Buy certificate:


Certificate costs
$499

per year (100$ per year
discount on longer periods) from
Verisign


Certificate costs
$299
per year ($549 per 2
years) from
Thawte


Provide authorization credentials


Pay and pick up certificate

Symbian C++
-

Capabilities


Signing Types


How to Get?


Publisher ID: purchase from TC
TrustCenter

(
www.trustcenter.de/order/publisherid/dev
)
-

$200 per year


Symbian

Signed account (free)
www.symbiansigned.com



Certificate creation tools
http://developer.symbian.com/wiki/display
/pub/Symbian+Signed+Tools



How to Use Open Signed
Online


Go to SymbianSigned.com


Create account


Generate UID for your application


Compile application using provided UID


Get IMEI from the devices you want to test the application
on


Upload application to
https://www.symbiansigned.com/app/page/public/openSig
nedOnline.do



Wait for confirmation email and go to confirmation link


Wait for download email and go to download link

Example


How to Express Sign


Get Publisher ID from TC
TrustCenter

($100)


Purchase Content ID for TC
TrustCenter

($20
per signing)


Sign the application with Publisher ID using
SignSis


Submit application to
Symbian

Signed


Download signed application from
Symbian

Signed


Optionally, the application could be selected for
audit


Ovi Shop


Nokia can sign your Java ME apps as Java
Verified


Nokia can sign you
Symbian

C++ apps as
Express Signed (Certificates are valid for
only three months)


You have to register as publisher (

1)


Nokia does a QA review, ensuring that the
app meets signing criteria as well as their
own test requirements

Start GPS on Java ME


Start GPS on Java ME


Questions



Thank you!