Forum Nokia
Nokia Connecting People

Login Register

 

Home: Resources: Technologies: Open C/C++: Open C/C++ QuickStart

Open C/C++ QuickStart

Open C/C++ - leverage your desktop C or C++ skills to S60 devices

The Open C/C++ Plug-ins for S60 3rd Edition provide you with a comprehensive range of standard C and C++ APIs as well as a set of non-Symbian C++ graphics and audio APIs. Even if you have limited or no experience with Symbian C++ development, you will find that Open C/C++ allows you to easily create middleware and application engines for S60 3rd Edition devices.

The Open C/C++ libraries provide a Linux-like, vendor-neutral C/C++-programming interface to the core functions of S60 devices. The standard libraries are supplemented by the Real-Time Graphic and Audio (RGA) API, which enables you to create custom UIs for selected devices without having to use the S60 UI APIs or Python.


Benefits of using Open C/C++

Open C/C++ provides familiar, standard C and C++ libraries and enables the reuse of existing code and development to focus on maximizing the unique mobility aspects of applications. It reduces the effort required to port existing components (for example, open source software and desktop applications) to the S60 platform. Developers can benefit from a large, open-source code base instead of having to create everything from scratch. This offers both time-to-market and quality advantages.

What you should already know

To make use of the Open C/C++ plug-ins, you should have an understanding of development using standard C/C++ libraries. No specific understanding of Symbian C++ development is required unless you wish to build a standard S60 user interface for your application. An understanding of the Symbian OS build tools is necessary to package any applications for deployment to an S60 3rd Edition device.

Start here

Before you begin writing code, get an overview by reading the document Open C for S60: Increasing Developer Productivity. This white paper describes how Open C, including POSIX libraries, increases the efficiency of developers working on products based on Symbian OS, allowing them to draw on existing code and components as part of their development projects.

And if you haven't already, read the Open C/C++ technology landing page.

Play with the tools

The Open C/C++ Plug-ins for S60 3rd Edition package includes a plug-in for S60 3rd Edition SDKs, for Symbian OS, for C++, and a set of plug-ins for S60 3rd Edition devices. The plug-ins deliver the Open C, Open C++, and RGA headers and libraries that enable application development and testing on a PC and the execution of software on S60 3rd Edition devices. The plug-ins package also includes example applications and comprehensive documentation of the APIs.

The Open C/C++ plug-ins for S60 3rd Edition replace the Open C plug-ins and include:

  • Various fixes for the standard C (Open C) APIs.
  • New standard C++ APIs.
  • New Real-Time Graphics and Audio (RGA) API.

Note that Open C is integrated into S60 3rd Edition, Feature Pack 2. However, you may want to update the SDK and devices with the new plug-ins and runtime.

Get the development tools

You will need the hardware and software necessary for the installation of your chosen S60 3rd Edition SDK, for Symbian OS, for C++ as well as an additional 109 MB of disk space for the plug-in.

Once you have installed the SDK plug-in, you can access the Open C/C++ S60 3rd Edition device plug-ins, documentation, and example applications.

Development with Open C/C++ can be undertaken with any IDE suitable for S60 development. However, Carbide.c++ v1.3 is recommended.

Create an Open C/C++ project

At this point you do not need to program anything—you simply need to become familiar with the development process and tools by building and running an existing Open C example application.

Watch the Getting Started with Open C video, which provides an introduction to the tools and processes for using Open C. First the video shows how to download and install the plug-in (note that the latest Open C/C++ plug-in provides an installer so there is no need to manually extract the contents to the SDK root directory). Then it illustrates how to use Carbide.c++, and the process of importing, building, and running an application that uses Open C. Finally the video demonstrates how to create a device build of the application and how to install Open C runtime libraries and the application on the device.

Open C/C++ applications are supported on any S60 3rd Edition device or later. However, the device needs to have the runtimes installed.

Begin studying Open C/C++ programming

What is Open C?

Open C is a set of standard base libraries that provide a vendor-neutral (or Linux/Unix-like) C programming interface to the base functionality. The Open C libraries are based on POSIX libraries on Symbian OS™ (P.I.P.S.), with five additional open-source C libraries. The C libraries include libc, libcrypt, libcrypto, libdl, libglib, libm, libthread, libssl, and libz.

What is Open C++?

Open C++ is a set of standard base libraries that provide a vendor-neutral (or Linux/Unix-like) C++ programming interface to the base functionality. The libraries include IOStreams, STL, and Boost.

For more information, visit the Open C/C++ features page.

How to port existing code to the S60 platform

  • Watch 04401: Porting to S60 Using Open C, an eLearning module that provides students with the basic knowledge and skills they need to port C code to S60 using Open C. The module is intended for developers who have little or no knowledge of Symbian OS, but have some experience in using POSIX/GLIB APIs on other platforms. In addition to the main presentation, this eLearning module also provides a practical demonstration of porting C code to an S60 3rd Edition DLL. The demonstration starts with some existing C code, which uses the GLIB libraries, and shows how to port it step by step to S60.
  • Also read the article Tips for Selecting Open Source Code for an Open C Project for information on how to produce better quality code.

How to develop a graphical user interface

Note that there are no UI libraries for Open C/C++. However, you can currently create the UI in three alternative programming languages; you can use the S60 UI framework and develop it in the Symbian C++ programming language. If you are not familiar with Symbian C++ programming, you have two choices: RGA APIs that are C++ APIs ideal for UI-intensive, graphics-oriented applications such as games or Python for S60, a scripting language mainly targeted at prototyping, is suitable for applications with minimal UI requirements.

Shortcuts to development resources

Scan through the documentation

Open C/C++ documents, code examples, videos, and webinars
Open C/C++ articles in Forum Nokia Wiki
Open C/C++ technical solutions and known issues in Forum Nokia Knowledge Base

Discuss with your peers

Open C/C++ discussion

Want to make money with it?

Applications or middleware created with the Open C/C++ APIs are essentially the same as applications written using the native Symbian OS and S60 APIs.

Before taking any software built using Open C/C++ to market, you should consider securing Symbian Signed certification for your application. Symbian Signed certification assures sales channels and mobile consumers that an application has achieved a high level of quality and comes from a reliable source. As such, Symbian Signed opens up sales channels and makes applications more appealing to mobile consumers.

Read more about the Symbian Signed program

Forum Nokia Open C/C++ plug-ins go-to-market links:

With MOSH
With Operators
With Aggregators
With Nokia

Back to top

Learn how to
download applications

java symbian_os s60 maemo c++

Community highlights

Discussion thread of the week

How to run an EXAMPLE...

Champion of the month

Mika Raento
Read more about
Mika on the
Champions web site.

Newsletter sign up

Privacy policy   Archives

Press

Events

Forum Nokia feed

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

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


RDF Facets:


qdcZcoverageQUxhttpE3AE2FE2FforumE2EnokiaE2EcomE2FX
qdcZtypeQUqfnZE45E78cludedFromGeneralE4CistingsQ
qdcZtypeQUqfnTypeZE52esourceQ
qdcZtypeQUqfnTypeZWebpageQ
qdcZtypeQUqmarsZManagedE52esourceQ
qdcZtypeQUqwebZInformationE52esourceQ
qdcZtypeQUqwebZPageQ
qdcZtypeQUqrdfsZE52esourceQ
qfnZdistributionQUxhttpE3AE2FE2FforumE2EnokiaE2EcomE2FX
qfnZtypeQUqfnTypeZE52esourceQ
qfnZtypeQUqfnTypeZWebpageQ
qfnZtypeQUqmarsZManagedE52esourceQ
qfnZtypeQUqwebZInformationE52esourceQ
qfnZtypeQUqwebZPageQ
qfnZtypeQUqrdfsZE52esourceQ
qmarsZlanguageQUxhttpE3AE2FE2FswE2EnokiaE2EcomE2FlanguageE2D1E2FenX
qrdfZtypeQUqfnZE45E78cludedFromGeneralE4CistingsQ
qrdfZtypeQUqfnTypeZE52esourceQ
qrdfZtypeQUqfnTypeZWebpageQ
qrdfZtypeQUqmarsZManagedE52esourceQ
qrdfZtypeQUqwebZInformationE52esourceQ
qrdfZtypeQUqwebZPageQ
qrdfZtypeQUqrdfsZE52esourceQ