C++ Development for Symbian Series 60 Phones

I’ve tried a bunch of different toolsets, without ever really being happy. Some that I’ve tried include:

However, Nokia has now released Carbide C++, which is supposedly specific to developing phone applications. After installing Carbide, it is also necessary to install an appropriate SDK for your particular mobile phone platform. Looking at Device Details on Nokia’s website, specifically those for the 6620, I learned that I needed “S60 2nd Edition, Feature Pack 1”. Browsing on Nokia’s SDK download pages, it is nearly impossible to figure out which SDK is the right SDK. I thought I had done it, only to discover that what I thought was the generic Symbian Series 60 SDK 2nd Edition Feature Pack 1 was actually for .NET. There is hope, though…

Once Carbide C++ has been installed, it automagically opens up a local html file. I have pasted some of its contents here because they contain simple links to the appropriate SDKs:

SDK Support in Carbide.c++
Release 1.0.0 Revised Feb 14, 2006

To complete your installation and start Symbian C++ application development, you may want to install one or more of the following SDKs:
S60 SDKs (forum.nokia.com)

Series 80 Platform SDKs

UIQ SDKs (developer.uiq.com)

You also need to install:

Perl (www.activestate.com)

I installed “S60 2nd Edition, FP 1” for my Nokia 6620. Note that during installation it claimed to be for MetroWerks Codewarrior. I believe Nokia bought that product and renamed it Carbide, but I’m not sure. I also installed ActivePerl version 5.8.6 build 811. This is newer than the one suggested by the Carbide docs, but it seems to work.

It’s slightly confusing to figure out how to create a project that will actually run on the phone. The steps I followed are:

  • File : New -> Symbian OS C++ Project (choose a name in the resulting dialog box).
  • Choose “Symbian Polymorphic DLL Project : S60 2.x [type] application” , where type indicates the basic structure of the application you’re trying to build. One of them is “Hello World”, a reasonable pick for first-timers.

Carbide is not without its limitations, some of which include:

  • The only build option is Build-All; its not possible to build a single source file. Time-consuming for large projects.
  • No built-in support for SVN (that I’ve discovered yet, anyways). I’m still not sure how difficult it will be to keep a project current in a revision control system if Carbide is used.

But some things I really like are:

  • Powerful rename options. So many IDEs choke badly if too many project files are renamed.
  • Sane workspace management. I feel like the IDE is helping me, rather than moving files around according to some arcane set of rules.
  • Importing of other projects from .mmp or .inf files. Most of the examples I tried just worked; unheard-of for these phones!

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

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

Google photo

You are commenting using your Google 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 )

Connecting to %s