Symbian C++ QuickStart
![]() |
Symbian C++ and S60 platform - boosting innovation and revenue

Guitar Legend - Gameloft
Symbian C++ is the native programming language of Symbian OS devices. There are various UI platforms using Symbian OS. This guide refers to the S60 platform that is by far the most popular platform based on Symbian OS, and the superior leader in the entire and extremely fast growing smartphone market, making it an important source of revenue for third-party applications.
There are many runtime environments available in Symbian OS devices (for example, Java, FlashLite, Python, and Web Runtime for widgets) for which it may be easier to develop, but Symbian C++ provides the richest application programming interfaces and the best possibilities for full-flavoured applications.
As a programming language optimized for mobile devices, Symbian C++ provides a few concepts and restrictions compared to standard C++. The Symbian C++ programming language idioms and development process apply to all Symbian OS platforms but there are also many UI platform-specific features and interfaces.
What you should already know
You should have a certain level of C++ programming experience. Without prior C++, or at worst not even any other programming language experience, you should consider basic C++ training first.
Start here
Before you begin writing code, get an overview by reading the introduction to the S60 platform. And if you already haven't, take a quick peek at Symbian C++ technology landing page.
There are loads of resources available to start with and it is possible to follow alternative paths, based on your preference. In case you don’t feel ready to proceed with the tools yet, but prefer to continue scanning through the learning material before jumping into actual development, there is an easy-to-follow Symbian C++ eLearning path available. You might also consider books or instructor-led classroom training. However, here the idea is to first get something simple but concrete done quickly — in other words, a quick start, and only after that start studying Symbian C++ programming in more detail. Ready to proceed?
First just play with the tools
Get the development tools
To develop C++ applications, you need a software development kit (SDK). The SDK typically contains header files and libraries, 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 Symbian OS platform has its own SDKs.
- Download and install the S60 SDK for Symbian OS for C++ (the most recent one is the S60 3rd Edition, FP2 Beta SDK).
Though an integrated development environment (IDE) is not required for programming, you do need it to get the right compiler, WINSCW compiler, in order to build applications for the S60 device emulator on a PC. This compiler is provided, for example, in the Carbide.c++ IDE.
- Download and install Carbide.c++ Express free-of-charge.
Create your first C++ project
At this point you do not need to program yet, just build and run an existing application:
- Simply follow the instructions in the Getting Started section of the C++ Developer's Library to understand how the development process goes. The section also describes the contents of a typical Symbian/S60 project.
Now start studying Symbian C++ programming
What is Symbian C++ then?
Symbian C++ programming language is based on C++ but it is optimized for mobile devices with limited resources. Symbian C++ provides some concepts supporting the effective resource usage, for example:
- the object life time is controlled with CleanupStack
- efficient exception handling using Trap/Leave instead of try/catch
- string handling using descriptors
- client/server model, asynchronous calls, and active objects
If you are new to the Symbian C++ programming language, you should read the S60 Platform: Comparison of ANSI C++ and Symbian C++ document describing the differences compared to standard C++ and the C++ Coding Conventions section in the C++ Developer's Library to understand how to write applications in a good Symbian C++ coding style.
Understand the S60 application framework and user interface
- Read the Application Framework and UI sections of the 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 Symbian OS. The examples are from the S60 platform. It is recommended to read these two sections in parallel to each other because of the strong interdepency of these two concepts.
After doing this, you should have a basic understanding of the Symbian C++ application development process. Are you ready to go further?
Shortcuts to development resources
Get an Integrated Development Environment
Even though application development is possible using just an SDK, serious developers usually acquire an Integrated Development Environment (IDE) to make the development process easier. Carbide.c++ is recommended as it provides the best integration with the Symbian application development process. There are four different versions of Carbide.c++.
- Download and install the latest Carbide.c++ IDE.
If you already have CodeWarrior or Visual Studio .NET 2003, you can use them as well (you need the Carbide.vs plug-in for the latter one).
Choose the right S60 SDK
If you are targeting the application to multiple platform versions, the baseline SDK is usually a safe choice. For example, the S60 3rd Edition, Maintenance Release SDK can be used to build the application 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 otherwise provide optimized variants, you need to use different SDKs. Download the S60 SDKs »
Scan through the documentation
There is a lot of documentation in a few places:
C++ documentation categorized according to the topics
C++ Developer's Library - links to the S60 and Symbian API References
Forum Nokia Wiki – documentation written by developers
Forum Nokia Knowledge Base - technical solutions, known issues, and code snippets
SDK documentation (SDK Help)
Learn faster with eLearning
A wide range of eLearning modules and screencasts provide maximum information in the least amount of time.
Check out the curriculum »
Additional learning paths on specific topics:
S60 3rd Edition Learning Path for C++ developers
S60 UI Development for C++ Developers
3D Graphics Development for C++ Developers
Examine the code examples
Complete, executable example applications with source code
Discuss with your peers
Symbian C++ discussions
Want to make money with it?
Congratulations if you have come this far and created an innovative and cool Symbian C++ application for the S60 platform! You can market your application through many channels to more than 100 million S60 devices.
Get certified
Even though it is possible to distribute the application as a self-signed version, many sales channels require your application to be tested and certified via the Symbian Signed program. With certification from this industry-recognized program, you and your customers can be sure that your application meets the industry-standard test criteria created by experts in Symbian C++ for mobile devices.
Read more about the Symbian Signed program »
Go to market
Forum Nokia can offer plenty of 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 »
What else could you do?
Expand with SDK plug-ins
If this is not enough, check out what the plug-ins for the S60 SDK provide. The plug-ins are software packages that extend the features of a 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 SDK.
The SDK plug-in packages provide additional application programming interfaces. The APIs may be subject to change and thus they are not officially supported by the S60 platform. There are separate versions for S60 3rd Edition, MR SDK and S60 3rd Edition, FP1 SDK. Check out the additional APIs available »
The Nokia Eseries SDK Plug-in for S60 C++ SDKs provide application programming interfaces specific to Nokia Eseries devices. Take full advantage of the additional features present in the Nokia Eseries devices »
Access hardware features
Symbian C++ provides also access to hardware-specific functions enabling optimized and more innovative applications.
The 3D accelerometer (Sensor) API, published as an SDK plug-in, can be used to receive information on the device's motion thus enabling many appealing use cases, e.g., in games . The sensor is currently provided in the Nokia 5500 Sport, the Nokia N82, the Nokia N93i, the Nokia N95, and the Nokia N95 8GB. Learn more about the Sensor API »
Hardware-accelerated graphics, provided in the S60 SDKs via OpenGL ES APIs, is supported in high-end S60 devices (such as the Nokia N93, the Nokia N93i, the Nokia N95, and the Nokia E90 Communicator). Learn how to optimize hardware-accelerated 3D graphics »





