Symbian development environments

From MoDe

Table of contents

IDE's

Nokia Carbide IDE

Nokia's Carbide IDE is an improvement over what has been previously available because it helps you with getting started. Carbide replaces Metrowerks Codewarrior and is based on the well known, open source, Eclipse platform. The FREE version is Carbide.c++ Express v1.1, which you can download from http://forum.nokia.com. You can purchase the "developer" version which adds a UI designer or the "professional" version which adds on-device debugging (instead of emulator).

The code navigation is still not as good as MS Visual Studio.

Microsoft Visual Studio

Microsoft's Visual Studio is a fairly well known development environment. You can use the 7.0 (.NET) at least on SDK 2.1 (7610) and 2.2 (6630), version 6.0 works as well. The IDE is pretty good, however, it is not integrated at all with Symbian SDK. The SDK includes tools for generating a Visual Studio workspace, then you can further develop your project within that workspace. If you want to add more files to your project, you have to do that manually with Symbian project files, and recreate the workspace.

Borland CBuilderX

This is an older IDE.

CBuilderX is integrated very well with with the Symbian SDK. It's the only IDE that includes a visual tool for creating a Series 60 GUI.

Metrowerks Codewarrior

This is an older IDE. It has been replaced by Nokia Carbide.

Nokia recently bought all the development and support resources of Metrowerks' portfolio of tools for Symbian OS. This means that for all new SDK's the Codewarrior version will be first to come out. Also, in time, this IDE will most likely have the most direct support for Series 60 development built into the tool chain.

getting started

Command line

Developing using command-line tools is usually faster. If you are not planning to use debugger, and prefer some other editor than what is provided with the IDE (e.g., Emacs), command line development works fine. Here's the work flow.

  • You first create a basic version of the program.
  • Compile it from the command line (using bldmake and abld, maybe in a simple makefile).
  • Start the emulator (epoc.exe).
    • Try your program out, close the program. Debugging is mostly done through printing out data into InformationNotes, for example.
    • Edit the program, recompile.
    • Try out, repeat. The emulator can remain open, the work cycle is pretty fast.

However, the IDE's can be pretty good, they may include code-completion, help files, class browsers, etc., which you may or may not have in your otherwise favorite editor (well, Emacs has most of them :-). And you can usually debug your program with an IDE. However, usually you have to close the emulator between builds and restart, which slows the process down.

Cygwin/Series 60 SDK 2.0

This is the ORG recommended method

See Kari's notes on getting started (http://graphics.csail.mit.edu/~kapu/symbian.html)

This method of development involves your favorite text editor (vim/emacs/whatever), cygwin, perl, and the barebones SDK. If you don't need special support for the 7610 phone and stuff like that, we recommend installing the Series 60 SDK 2.0 (instead of the SDK 2.1 and camera plugin)

Kari's Symwiz

Kari (http://graphics.csail.mit.edu/~kapu/) wrote this great tool to get people started in Symbian C++ development.

http://graphics.csail.mit.edu/~kapu/symwiz/symwiz.html

The basic framework and Symbian conventions can be quite daunting when you just want your Hello World out. Symwiz creates you a project, with a standard directory hierarchy, GUI, the default class structure that you need for the application and GUI, as well as project files (for compilation and linking of the project) and package file (for creating the *.sis file that you can install on the phone).

Symwiz is written in Python and you can study / change / extend it, source is provided. Or if you want to use it as a black box and don't want to install Python, that works too. Several examples are provided. Symwiz uses *.init files, helloworld is this easy:

 PrjName = 'swHelloBasic'      # the project / program needs a name
 UID = '0x02222222'            # all Symbian programs need a User ID 
 # create a menu with two items, first gives a dialog box, second exits
 resource.menu = [['Hello', infonote( 'Hello World Basic' ) ],
                  ['Exit',  'Exit();' ]]

Symwiz comes with several examples.

References

Back to Nokia Series 60