Getting started with Symbian development

Symbian OS is a proprietary operating system, designed for mobile devices, with associated libraries, user interface frameworks and reference implementations of common tools, produced by Symbian Ltd. It is a descendant of Psion’s EPOC and runs exclusively on ARM processors.

Symbian OS was built to follow three design rules – the integrity and security of user data is paramount, user time must not be wasted, and all resources are scarce. This led to a continuation of the use of servers; a microkernel; a request and callback approach to all services; an absolute division of user interfaces from system or application services; reuse and openness; extensibility; and robust management and resource recovery to support extended always-on operation. For hardware the OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS, follow an object orientated design, MVC.

Structure

The Symbian OS System Model contains the following layers, from top to bottom:

  • UI Framework Layer
  • Application Services Layer
    • Java ME
  • OS Services Layer
    • generic OS services
    • communications services
    • multimedia and graphics services
    • connectivity services
  • Base Services Layer
  • Kernel Services & Hardware Interface Layer

1.1 Identify your target

There are currently three main GUI systems:
– Nokia Series 60
– Nokia Series 80
– UIQ
Here is a short table summarizing this:

GUI Specificities Phones
Series 60 v1.x
+ Symbian OS 6.1
Resolution=176×208
Phone Keyboard
No touch screen
Nokia 3650, Nokia 7650, Nokia N-Gage, Siemens SX1, Samsung SGH-D700, Sendo XXX
Series 60 v2.0
+ Symbian OS 7.0s
Resolution=176×208
Phone Keyboard
No touch screen
Nokia 6600
Series 80
+ Symbian OS 6.0
Resolution=640×200
Full Keyboard
No touch screen
Nokia 9210
UIQ v2.0
+ Symbian OS 7.0
Resolution=208×320
Optionnal Keyboard
Touch screen
SonyEricsson P800, BenQ P30

Each target has its pros and cons. Series 60 platforms are probably the most commons and -IMHO- the easiest to start with.

1.2. Choose your development environment

Once you select your platform, there will be a second decision to make: which SDK / IDE shall I use. There is currently three main options:
– Visual C++ 6.0 (or Visual Studio .NET 2003)
– Metrowerks CodeWarrior for Symbian OS
– Borland C++ Builder, Mobile Edition (totally outdated now)
– Carbide.c++
The best environment will be the one you will be the more familiar with. And most of the work can be done with Visual Studio, CodeWarrior or Carbide.c++.

1.3. Which kind of PC do you need

Most today PC are suitable for Symbian development. You just need enough memory and Windows NT, 2000 or XP.

1.4. Download and Install your SDK

Here are a few links that would allow you to download or buy the appropriate IDE and SDK:

- Nokia SDK for Visual Studio
- Nokia SDK and Borland C++ Builder
- Metrowerks Codewarrior
- Nokia SDK for Metrowerks Codewarrior
- SonyEricsson SDK for Metrowerks Codewarrior

You nstalled the Series 60 SDK in its default directory and that you will use Visual C++

The directory tree

In your C:/ drive there are a new directory tree thats look like:

C:\Symbian\6.1\ =>Series60\ => Epoc32\

Epoc32Ex\

Series60Doc\

Series60Ex\

Series60Tools\

Shared\=> Epoc32\

it is a good idea to install the SDK in the default directory.

The Series60\Epoc32\ directory is the most important. It contain all the Symbian header, libraries,… but we will talk about it a little bit later.

The Epoc32Ex directory contain some code example provided by Symbian. This is definitely a good place to start with (especially the Basics, Base and HelloWorld subdirectories).

The Series60Ex directory contain some more code examples by Nokia. They are generally slightly more complex than the Symbian ones and covers Series 60 / UI stuff.

The Series60Doc contains the documentation. The most important files are:
- Devlib.chm : this is the main Symbian developer documentation. You will find here the definition of most of the function you can use. A good tip: go to the Symbian web site and download the latest version which is far more complete that the one included in the SDK.
- Examples.chm and Series60Examples.chm describe all the code examples (not always with enough details).
- Series60APIRef.chm is a list of Series 60 specific APIs (but with very few explanations).

The Series60Tools directory contain extra tools. The most interesting one is the Application Wizard that you really should install (read the txt file in the subdirectory): it will generate some empty application that are a good base to start your projects. The MMP Click is also quite nice: it adds an contextual item in the right-click menu to compile your projects without using the command line.

Some documentation

You are now ready to start. If you can afford it, buy one book or two. This will save you a lot of time. My advices:
- Symbian OS C++ for Mobile Phones (pick this one if you can just get one)
- Programming for the Series 60 Platform and Symbian OS (only if you intend to work on Series 60
- Symbian OS Communications Programming (optional one – only interesting if you intend to use sockets, bluetooth or the telephony API)

You can check the Links to useful Series 60 documents. Take also a look at:
- the Overview of the Compilation system
- T, C, R, M classes
- TRAPs and Leaves
- String and Descriptors
- File types and dependencies
- the other tutorials and links in the Basics section.

If this is not done, you can also register yourself on forum Nokia: you will get access to the Discussion boards. Don’t forget to also register on our boards, the NewLC community is very helpful.

And finally subscribe to Symbian’s discussion.epoc.C++ newsgroup.

Advertisements

2 Responses

  1. Thank you for good information~~*

    Please comeback to visit my blog too :http://touchscreen-system.blogspot.com/

    I’m sorry , If you think this is spam. but may i thank you again.

    Bye

  2. its a good for me..thnx a lot……..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: