oreilly.comSafari Books Online.Conferences.


Roll Your Own Series 60 Phone Applications
Pages: 1, 2

The SDKs

Let's have a look at some of the SDKs available.

  • Series 60 Theme Studio (for Symbian OS) v. 1.14

    The Series 60 Theme Studio can create themes for Series 60 Developer Platform 2.0 (or later) devices such as the Nokia 6600, 6620, and 7610 mobile phones. Themes can customize wallpaper, application icons, color schemes, and more.

  • Nokia 7610 Camera Plug-in for Series 60 SDK 2.1 for Symbian OS

    The Nokia 7610 Camera Plug-in lets developers create applications that use APIs for the built-in camera in the Nokia 7610 imaging phone.

  • Series 60 SDK 2.1 for Symbian OS Series 60 and Series 60 SDK 2.1 for Symbian OS Supporting Metrowerks CodeWarrior for Symbian OS Series 60

    SDK 2.1 for Symbian OS enables C++ application development for the Series 60 Developer Platform 2.0 devices, such as the Nokia 6620 and Nokia 7610, that use the Series 60 2.1 software.

  • Series 60 MIDP SDK 2.1 Beta for Symbian OS

    The SDK enables MIDP application development for several Series 60 Developer Platform 2.0 devices, including the Nokia 6620 and Nokia 7610.

  • Series 60 SDKs for Symbian OS, Nokia Edition

    The Series 60 SDK for Symbian OS enables native C++ application development for devices based on the Series 60 platform. It includes SDKs for Series 60 Developer Platform 1.0 and 2.0.

What are the wrinkles? First of all, the C++ SDKs support only Windows. If you use Windows for development work, and if you use something like Code Warrior, your choice of SDK is straightforward.

If you use Linux, all is not lost--but there are complications. The SDKs come in the form of Windows installers. The good news is that there is a Linux tool to do the unpacking. The bad news is that works only for the 1.2 SDKs, so this is a good point to mention the featured differences. The 2.0 platform adds TCP/IP browsing to XHTML browsing, SMIL (Synchronized Multimedia Integration Language) to MMS messaging, and OMA (Open Mobile Alliance) DRM and client provisioning.

If you want to work in those areas, you'll either have to use Windows or write your own unpacker.

Here, in any case, is the Linux unpacking tool. Interestingly, Chris Davies, the author, now works for Nokia. Frustratingly, his email address wasn't working when I tried to find out whether Nokia would release Linux-friendly packages or whether he'd update the SDK unpacker soon.

After you've unpacked the SDK, you need ways of generating make files and the like. This you can find at Symbian SDK on Unix along with helpful notes and links to utilities to transfer data by way of Bluetooth or infrared. Even with this, you'll also need Wine to execute some of the programs.

Another complication of working on Linux is that you cannot use the emulator and the debugger. This isn't a calamitous loss, as the emulator is a simulator that runs Windows executables, not ARM binaries for the phone. Although it might be useful for some things, it cannot test the ARM binary. It does mean, however, that you will need physical access to the phone you're developing for.

As far as the debugger goes, Rudolf Koenig, who is responsible for the Linux tools for the SDK, uses debugline.c, and he talks about it at the bottom of his page.

Another possibility here is to do what Simon Woodside has done to use Linux for the SDK and Mac OS X for its free XCode development environment. It doesn't matter at all what environment you use to write the code, of course, but he has written up the whole process in an informative way.


One potential worry about using other people's libraries in an SDK is that there might be restrictions on the kind of license under which you can issue your code. I'm not a lawyer and was not interested in reading boilerplate, so I asked Nokia about its attitude. "Do what you like" pretty much sums it up.

That might not be enough for some people, especially as trivial example code fragments have Symbian copyright notices peppered throughout. Realistically though, your code is yours (Uh-oh, I hear the lawyers calling!), whereas the binaries link into copyrighted code. Over to you.

Preliminary Reading

For C++ on Series 60, the main book to consult is Developing Series 60 Applications by Edwards, Barker, and others, from Addison-Wesley under a Nokia imprint. The first thing that strikes you about the book is that at more than 750 pages, it's not a slim little thing. There's a lot of ground to cover to reveal the API and how to go about tackling various classes of app. This is one of those subjects where you just won't understand it all in a week, no matter how smart you are. Work through in an unhurried way.

Another book that covers the other platforms as well is Wiley's Symbian OS C++ for Mobile Phones by Richard Harrison. Like the first book, this weighty tome covers the subject in some depth. If you are interested in the possibility of branching out into platforms other than Series 60, this would be a good bet. The price is similar too; both are around the $50 (Can $72, UK £31ish) mark. also has a very good array of documents. For instance, under Getting Started, you'll find:

  • Developer Platform for Series 60 White Paper

    This document explains the concept of the Series 60 Developer Platform and examines the differences between the Series 60 Developer Platform and the Series 60 platform, including the features and applications found in different versions of each.

  • Developer Platform 2.0 for Series 60 FAQ

    This document discusses a variety of aspects of Series 60 Developer Platform 2.0. It defines exactly what the term means, the features of version 2.0, the range of developmental tools available, the business case for interested parties, and marketplace options for vendors.

  • Developer Platform 2.0 for Series 60: Introduction To Designing C++ Applications

    This document describes how to develop a simple application in C++ for Developer Platform 2.0 for Series 60.

You'll also find documents about choosing an IDE (no mention of Linux in connection with C++) and even one about games in C++.

In a different section are also many code samples that relate to operations you might want to perform, such as connections, multimedia, and a whole lot else.

Hello World

This article is about starting, so I might as well throw in a Hello World. Below is a console app that takes over the whole screen without any GUI dressing at all.

// HelloWorld.cpp
// Copyright (c) 2000 Symbian Ltd.  All rights reserved.
#include "CommonFramework.h"
// do the example
LOCAL_C void doExampleL()
   _LIT(KHelloWorldText,"Hello world!\n");

The next stage on Windows is to build an .exe file for the emulator. Compiling this basic app requires the source file, a project definition .mmp file, and a Bld.inf file that lists component definitions. A GUI app requires more files.

On Linux you compile the ARM binary and then make a .sis file for export to the phone. You might then use p3nfs, which mounts a Bluetooth device onto the Linux filesystem, to transfer the app across.

When you run the executable you'll see a Symbian OS message and the words ... well, you know. Press a key to quit the app.

After you've reached this point, a good strategy is to use the basic GUI app, included with the SDK, to build your own apps.

Good luck!


John Littler is chief gopher for

Return to

Sponsored by: