Forum Nokia
Nokia Connecting People

Login Register

 

Home: Resources: Technologies: Symbian: Symbian C++ QuickStart

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?

Back to top

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.

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.

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.

Back to top

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?

Back to top

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++.

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 »

Back to top

Learn how to
download applications

Newsletter sign up

Privacy policy   Archives

Community highlights

Press

Events

Forum Nokia feed

  • Latest devices
  • Latest documents
  • Latest tools
  • Latest blog entries

Terms & Conditions | Privacy policy | Site map | Developer feedback | © Nokia 2008