Register with Forum Nokia now and you'll enjoy the full benefits of the Forum Nokia membership.
Register LoginInnovation Series Videos highlighting Forum Nokia developers
Nokia releases new Qt developer offerings
Forum Nokia Developer Conference, India
Optimise your website for mobile devices with mobile web templates and layouts
Zoom and Rotate Gestures in FlashLite for touch-enabled devices
Jackson Feijó
Read more about Jackson on the Champions website.
MobileMonday Italy: The User Applications
November 23, 2009
Rome
Nokia Developer Days in South Africa
December 01, 2009
Johannesburg, South Africa
Forum Nokia Developer Conference ’09, India
December 07, 2009
Bangalore, India
LeWeb
December 09, 2009
Paris
Web Runtime Coding With Aptana WRT Plug-in
December 09, 2009
9am New York | 2pm London | 4pm Helsinki


Symbian C++ is the native programming language of Symbian OS on which the S60 platform is built. The S60 platform is by far the most popular smartphone platform, making it an important source of revenue for third-party applications.
There are several other runtime environments available in the S60 platform, such as Java™ technology, Flash Lite from Adobe, Python, and Web Runtime. These runtimes may offer a more accessible development option for some developers, but Symbian C++ provides the richest application programming interfaces for the most powerful and sophisticated applications for the S60 platform.
As a programming language optimised for mobile devices, Symbian C++ offers developers some different programming concepts compared to standard C++, which developers must master to make the most of this rich language.
You should have a good foundation in C++ programming. If you have no prior experience of C++ consider undertaking basic C++ training first.
Before you begin writing code, get an overview by reading the introduction to the S60 platform. And if you haven't already, visit the Symbian C++ technology page.
There are many resources available with which to start and therefore it is possible to follow alternative paths, based on your preference. Should you not feel ready to start with the tools yet, but prefer to study some learning materials before commencing development, there is an easy-to-follow Symbian C++ e-learning path available. You might also consider books or instructor-led classroom training. However, the goal of this page is to help you get something simple but concrete done quickly — in other words, a quick start — after which you can study the Symbian C++ programming in more detail. Ready to proceed?
To develop C++ applications, you need a software development kit (SDK). The S60 SDKs contain the header files and libraries for the Symbian C++ APIs, their documentation, a tool chain to build and compile the projects, and a device emulator to test the applications on a PC. Note that each edition and feature pack of the S60 platform has its own SDKs.
Download and install an S60 SDK for Symbian OS (the most recent one is the Nokia N97 SDK) »
You can develop your applications using command line tools supplied in the SDK or make use of the Carbide.C++ IDE. If you prefer to work at the command line you will still need to download and install Carbide.c++ to obtain the WINSCW compiler in order to build applications for the PC-based S60 device emulator.
Download and install Carbide.c++ free-of-charge »
At this point you do not need to program an application, just build and run an existing application to understand how the development process works: Simply follow the instructions in the Getting Started section of the S60 5th Edition C++ Developer's Library. This section of the library also describes the contents of a typical S60 project.
The Symbian C++ programming language is based on C++, but it’s optimised for mobile devices with limited resources. Symbian C++ includes several concepts supporting the effective use of resources, such as:
If you are new to the Symbian C++ programming language, you should read the S60 Platform: Comparison of ANSI C++ and Symbian C++ document, which describes the differences among Symbian C++ and standard C++, and the C++ Coding Conventions section in the S60 3rd Edition C++ Developer's Library to understand how to write applications using a good Symbian C++ coding style.
Read the Application Framework and S60 UI sections of the S60 3rd Edition C++ Developer's Library. The application framework section describes how to use the features offered by the application framework when designing and implementing your application. The UI section explains how to implement the application UI in the S60 platform. It is recommended that these two sections are read in parallel because of the strong dependency between these two concepts.
After doing this, you should have a basic understanding of the Symbian C++ language. Are you ready to go further?
Even though application development is possible using just an SDK, many developers prefer to use an IDE to make the development process easier. Carbide.c++ is recommended as it provides the best integration with the Symbian application development process.
Download the Carbide.c++ IDE »
If you are targeting your application to multiple versions of the S60 platform, you should use the SDK for the earliest version of the S60 platform that you want your application to run on. For example, the S60 3rd Edition, Maintenance Release SDK can be used to build applications that can be installed and run in all devices based on S60 3rd Edition and its feature packs.
However, if you want to use APIs or features specific to a certain S60 platform release (for example, APIs that are only available in the latest release) or if you want to provide optimised variants of your application, you will need to use multiple SDKs.
Download an S60 platform SDK »
There is a wealth of documentation available on C++ development for S60, such as:
A wide range of e-learning modules and screencasts provide the maximum information in the least amount of time.
View the e-learning curriculum »
If you have come this far you will be ready to created innovative and desirable Symbian C++ applications for the S60 platform. You will therefore be ready to market your application to the more than 180 million S60 device owners.
All Symbian C++ applications must be certified. You can do this yourself using a self-signing certificate, but many sales
channels require your application to be tested and certified under the Symbian Signed program. With certification from this
industry-recognised program, your customers can be sure that your application meets industry-standard test criteria created
by experts in Symbian C++.
Read more about the Symbian Signed program »
Forum Nokia can offer advice about promoting your applications. Whether your application has global, regional, or local appeal, Forum Nokia can help you find the right channels.
Read more about going to market »
Check out what the plug-ins for the S60 SDKs provide. The plug-ins are software packages that extend the features of an S60 Platform SDK, improving device emulation, adding functionality that is not included in shipped devices, or adding functionality that is specific to a certain device. The plug-ins allow a greater range of applications to be built and tested using the S60 Platform SDKs.
Of particular interest will be the Extensions API plug-ins that provide additional application programming interfaces. The APIs provided may be subject to change and are not officially supported in the S60 platform. There are separate versions for the S60 SDKs starting with the S60 3rd Edition, Maintenance Release SDK. Check out details of the additional APIs available »
The Nokia Eseries SDK Plug-ins for the S60 platform SDKs provide application programming interfaces specific to Nokia Eseries devices. Take full advantage of the additional features present in the Nokia Eseries devices »
Symbian C++ provides access to hardware-specific functions, enabling highly optimised and innovative applications.
The 3D accelerometer (Sensor) API, published as an SDK plug-in and integrated into the S60 5th Edition SDK, can be used to receive information on the device's motion enabling many appealing use cases, such as motion control in games. Learn more about the Sensor API »
Hardware-accelerated graphics, provided in the S60 SDKs via OpenGL ES APIs, is supported in some high-end S60 devices. Learn how to optimise hardware-accelerated 3D graphics »