Documents/Examples
S60 Documents/Examples

C++ Developer's Library
The C++ Developer's Library is an integrated package of information for developers wishing to use the S60 platform to develop mobile C++ applications and services. The library includes a C++ API Reference Guide. It also provides links to the Symbian OS online library, and to documentation and example applications available on Forum Nokia. The main library focuses on the S60 releases that have a wide representation on the market, while the extension library introduces the features of the newest S60 releases, for future devices. The libraries are available as a stand-alone version, as an Eclipse plug-in and in HTML format online. The stand-alone and Eclipse plugin formats support searching through the Eclipse platform.

Creating Mobile Videos
This article provides an introduction to the video capabilities of Nokia mobile devices and guidelines for creating and publishing mobile videos. It offers hands-on recommendations for practical issues, such as conversion settings and tool recommendations, as well as a step-by-step walkthrough of an example case where a video clip is adapted for mobile use. In particular, this article is aimed at media content producers who want to ensure reaching the maximum audience with relatively minimum effort.

Nokia Energy Profiler
The updated Nokia Energy Profiler, a stand-alone test and measurement application for Nokia S60 3rd Edition, Feature Pack 1 devices (and onwards), enables you to monitor your application's energy usage in real-time, in addition to the processor, memory, network, and signal levels on your phone.
Check the supported devices from here.

Nokia Energy Profiler 1.1 Quick Start Guide
Learn how to use the Nokia Energy Profiler to test and monitor your application’s energy usage in real time in the target device. The application is a stand-alone test and measurement application for Nokia S60 3rd Edition, Feature Pack 1 devices (and onwards).

OMA DM: VPN Client Management Object Specification
This document describes an OMA Device Management (DM) management object for the management of PKI data related to the use of the Nokia Mobile VPN Client software.

OMA DM: VPN Client PKI Management Object Specification
This document describes an OMA Device Management (DM) management object for the management of PKI data related to the use of the Nokia Mobile VPN Client software.

Carbide.c++ UI Designer White Paper
This white paper provides developers with an introduction to the Carbide.c++ UI Designer. The paper examines the key features of UI Designer and illustrates their use by explaining how to recreate the Birthdays example application supplied with Carbide.c++. This covers the creation of an S60 interface and modifying the generated application code to create a complete application.

S60 Platform: HTTP Client API Example
This C++ application demonstrates simple HTTP GET and POST transactions using
HTTP Client API. Basic HTTP authentication is also supported.

On-device debugging with Carbide.c++ Screencast
This screencast is a guide to getting started with on-device debugging with Carbide.c++.

Flash Lite 2.0: Sound for Nokia S60 and Series 40 Devices
Learn about the Flash Lite sound implementation on Nokia platforms. This document covers the implementation of Flash Lite 2.x players on Nokia Series 40 and S60 Devices. The document features a lot of commented code examples and together with the document Flash Lite 1.1: Sound for Nokia S60 and Series 40 devices gives the Flash Lite developer a full understanding of audio playback issues.

S60 Platform: Camera Example with AutoFocus Support
This C++ application implements the basic features of the built-in camera using the On-board Camera API classes MCameraObserver and CCamera (supported from S60 2nd Edition onwards). Also auto focus is supported via an AF extension library provided in the package
(supported in S60 3rd Edition, FP1).

Getting Started with JSR-226 Applications for S60 Devices Example
This example application was created for the Getting Started with JSR-226 Applications for S60 Devices screencast and presents a NetBeans 6.0 Mobility project using SVGT graphics. This project is also suitable for Series 40 platforms supporting JSR-226.

Getting Started with JSR-226 Applications for S60 Devices Screencast
This screencast demonstrates the creation of a simple Java™ application using the SVG features of NetBeans 6.0 Mobility. It also provides an introduction to the creation of suitable graphics using Adobe Illustrator and Ikivo Animator.
This screencast is also relevant to Series 40 platforms supporting JSR-226.

S60 Platform: Bluetooth Point-to-Multipoint Example
This C++ example demonstrates the use of Bluetooth technology: device and service
discovery, connection establishment to one or more devices, communication between
devices, and disconnection. The Bluetooth RFCOMM protocol is used as a transport
protocol. The updated version adds support for limited inquiry (LIAC) that considerably
speeds up the discovery process. Note that LIAC requires signing with a developer certificate.

S60 Platform: Development and Quality Assurance Process Guideline
Read this updated document to get an overview of the S60 application development process from pre-study to maintenance phase and to see how quality aspects can be integrated into the different phases of the development process. The information provided in the document can be used as a basis for creating a process or to complement and fine-tune an existing process. Most of the content in this document is considered generic and applicable to other than S60 applications as well.

Flash Lite Developer's Library
The Flash Lite Developer's Library is an information package for desktop Flash developers and mobile software developers looking to branch out to Flash Lite development. The library offers introductory and getting started information as well as several use cases describing Flash Lite features in more detail. This library is available in HTML format online and as a stand-alone version.

S60 Platform: Rich Text Editor Example
This C++ code example demonstrates the usage of Rich Text Editor. Most of the features are handled automatically when the dialog framework creates the editor. However, some steps, such as inserting an image, setting the text input type, or showing the scroller require the use of methods or classes. Main classes: CEikRichTextEditor, CFbsBitmap, TPictureHeader, CPicture.

S60 Platform: Log Example
This C++ application demonstrates the usage of the Log Engine API provided by Symbian. The API is used to record events of interest to the user, of which they may not be immediately aware, or which are of high importance since costs are incurred, such as telephone calls. These events can be retrieved by a viewer application and displayed to the user. The Log Engine API is supported from S60 2nd Edition onwards. In the updated version, the timestamp offset of the log events has been corrected, backup & restore and scalability support has been added, and the application views have been simplified.

Analyzing Application Performance with the Carbide.c++ Performance Investigator
This document provides an introduction to using the Performance Investigator, delivered with Carbide.c++ Professional and OEM Editions, to analyze the performance of an S60 3rd Edition application.
The document shows how Carbide.c++ implements performance analysis and then guides the reader through the process of installing and configuring the Performance Investigator Profiler, running a profile session, transferring profile data to a PC, and importing the data into the Performance Investigator Analyzer. The Performance Investigator Analyzer is then demonstrated using an example. The document concludes with a look at other ways performance data can be analyzed.

S60 Platform: FAQ
This document answers some of the most frequently asked questions posed by developers and business managers regarding the S60 platform. The questions and answers cover all the platform editions, development options, available tools, and market information. The document covers the platform’s features through S60 3rd Edition, Feature Pack 2.

S60 3rd Edition: What's New for Developers
This document provides an introduction to S60 3rd Edition up to and including Feature Pack 2. The document describes the kernel, binary, security, and API changes, and discusses the impact these will have on developers.

S60 Background eLearning
This module provides an introduction to S60, in terms of its background and basics concepts, and gives the developer the information required to get started in S60 C++ development. As part of this introduction, the module includes discussion of S60 licensees and the Product Creation Community, the various versions of S60, development requirements and finally gives a demonstration of the features available in the S60 emulator.

Mobile Web Server: Known Issues
This document lists the current limitations and known issues in the Mobile Web Server.

VoIP support in Nokia devices
This Web page lists the devices which support the Nokia VoIP implementation (starting from the mentioned software release) and the key supported features of each Nokia VoIP implementation.

S60 3rd Edition: Creating Custom Message Type Modules (with Example)
Download this C++ document and code example to learn how to create Message Type Modules (MTMs) for S60 3rd Edition and later releases. The target audience is e-mail developers implementing their own e-mail protocol (for example, Push e-mail service), where preinstalled S60 platform e-mail MTMs (POP3, IMAP4) cannot be used. The package demonstrates how to develop and install an MTM, how to create an account (mailbox), how to create a simple viewer/editor implemented as a server application, how to provide support to send from other applications, and how to receive notifications of new messages. Message sending and receiving are echoed locally. Note that Symbian platform security imposes heavy capability requirements for MTMs (up to ALL -TCB capabilities) and thus the application has to be signed using the Manufacturer Approved Developer Certificate.

S60 3rd Edition: Third-Party Application Integration
This document explains what developers should take into account when delivering Symbian C++ or Java applications to S60 devices. The document specifies the requirements that third-party applications should fulfill to be come part of the Nokia devices' offering.

Getting Started with NetBeans 6.0 Mobility for Nokia Devices Screencast
This screencast provides developers with a guide to creating mobile Java™ applications for Nokia devices using NetBeans 6.0 Mobility. After showing how to download and install all the relevant tools, this screencast illustrates how to create, edit, package, and deploy a simple Java application.

Widgets for the S60 Platform eLearning
This eLearning module introduces to Nokia Web widgets, which are Web applications that can be run outside the Web browser in devices compatible with the Web Runtime environment. An example Web widget is used to demonstrate how to develop and deploy the widgets. This module is also available in Chinese.

Symbian Signed eLearning
This eLearning module describes the processes needed to prepare an S60 application for the Symbian Signed testing programme. The module explains, for example, the steps needed to obtain a Publisher ID and Symbian Developer Certificate. The module also includes an essential guide to preparing an application for Symbian Signed submission.

OMA Device Management: Management Object for SNAP
This document defines the Service Network Access Point (SNAP) Management Object v1.0 settings format for OMA Device Management (DM) usage. SNAP is a concept introduced in S60 3rd Edition, FP2 that groups together a set of Internet Access Points (IAPs) that can be used to reach hosts and services such as Internet, corporate intranet, or operator service.

Getting Started with Web Runtime Widgets for S60 Screencast
This screencast provides Web developers with an introduction to creating Web widgets for S60 devices. The screencast describes how to download and install the tools required, illustrates some of the features of a Web widget, reviews the content of a Web widget, and provides tips on development and testing.

Web Developer's Library
The Web Developer's Library is an information package for developers wishing to create widgets for S60 devices. The library includes introductory, getting started, implementation, and API-level information. This library is available in HTML format online and as a stand-alone version.

S60 Platform: Identification Codes
This document describes how application developers should handle the compatibility of C++ applications at installation time, using S60 identification codes (Platform IDs and Product IDs).

Local Client Provisioning plug-in for VoIP Developer's Guide
The Local Client Provisioning plug-in for VoIP Developer's Guide is an entry-level guide intended for mobile software developers who are looking to deploy VoIP settings as an installable package to end-users. The guide describes the usage of Local Client Provisioning plug-in for VoIP rel 2.x beta 1.1, also available on Forum Nokia.

S60 Platform: End-to-End Device Management Example
This example adds device management features to the earlier published Symbian OS: End-to-End HTTP API Example.
It demonstrates how to implement a simple DM adapter in the S60 2nd and 3rd Edition devices that interact with
a device management server, how to set up and use a custom DM server, how to store and update the data received
from the DM server and to make the data available to another application. The example has been implemented
using freely available back-end components (Apache, Funambol, and JBoss servers; MySQL database). The package
consists of S60 client applications, WebUI components for JSP and PHP, and user account scripts for MySQL.
Documentation for configuring the system is included in the package.

Java™ ME Developer's Library v2.2 (Online)
Java ME Developer's Library version 2.2 is an update to the library version 2.1, complementing it with a tutorial on handling audio image and text content, which demonstrates the usage of the S40 implementation of JSR-211. The library describes the S60 3rd Edition FP2 and Series 40 5th Edition FP1 implementations of the Java technology and API specifications. The APIs are available on Forum Nokia, integrated in the Series 40 Platform SDKs and the S60 Platform SDKs for Symbian OS, for Java, respectively.

Java™ ME Developer's Library v2.2 (Stand-alone)
Java ME Developer's Library version 2.2 is an update to the library version 2.1, complementing it with a tutorial on handling audio image and text content, which demonstrates the usage of the S40 implementation of JSR-211. The library describes the S60 3rd Edition FP2 and Series 40 5th Edition FP1 implementations of the Java technology and API specifications. The package includes an Eclipse-based viewer, which provides you with a search. Extract the .zip file to any folder on your computer and click eclipse.exe to start the application.

Java™ ME Developer's Library v2.2 (Eclipse plug-in)
Java ME Developer's Library version 2.2 is an update to the library version 2.1, complementing it with a tutorial on handling audio image and text content, which demonstrates the usage of the S40 implementation of JSR-211. The library describes the S60 3rd Edition FP2 and Series 40 5th Edition FP1 implementations of the Java technology and API specifications. To install the Eclipse plug-in: see plug-in installation instructions inside the .zip file.

Designing for the Big Screen: Developing Applications for the Nokia E90 Communicator
This article discusses designing high-quality applications for the Nokia E90 Communicator and gives tips and tricks on designing for a large display. The article describes how to achieve a good balance in terms of both the visual layout of the UI elements and the amount of information presented on the screen, still fully utilizing the big screen.

Symbian C++ QuickStart
Start Symbian C++ and S60 development by checking the QuickStart web page.

S60 Platform: Chinese Display Example
This C++ application demonstrates how to display Chinese characters
from resource files. The application supports internationalization and localization. In the
updated version also the context-sensitive help has been added.
The application supports following languages:
English, Taiwan Chinese, Taiwan English,
HongKong Chinese, HongKong English,
Mainland Chinese, and Mainland English.
Main classes: TFontSpec, CCnvCharacterSetConverter

OMA DM: Management Object for Connectivity Settings
This document defines the Connectivity Settings management object v1.1 settings format for OMA Device Management (DM) usage. The document is a Nokia interpretation of the OMA Device Management specification. The document is valid from S60 3rd Edition onwards.

S60 Platform: Introductory Guide
This document provides an introduction to the main aspects of the S60 platform from the developer's point of view. It covers all platform editions, available tools, and guides to finding further information. The document covers the platform’s features through S60 3rd Edition, Feature Pack 2.

Open C QuickStart
Start Open C development by checking the QuickStart web page.

Tips for Selecting Open Source Code for an Open C Project
Read this article to understand what aspects should be considered in the selection of open source code when porting it to the S60 platform with Open C.

Getting Started With Ajax - Overview and Examples
This resource gives a quick introduction to the basic technology - and provides practical tips and example code for the Web developer. It is aimed at Web designers and others with a basic grounding in Web technology - but have not yet made any move into Ajax on mobile platforms.

Open C: IRC Example
Examine this code example to learn how to use an open source IRC library and Open C to create a functional IRC client application. The example contains a simple open source C library CIRC for communicating with IRC servers that is ported to Symbian OS using Open C and called from a GUI that is implemented using Symbian C++. The use case of the example is to communicate with other IRC users on the chosen IRC server. This example also supports sending "raw" IRC commands and is therefore a fully functional client application. A document about porting experiences and example architecture is also included in the package. Important libraries/structs/functions: libc, sockaddr_in, socket, gethostbyname, connect, nonblocking.

Flash Lite 1.1: Sound for Nokia S60 and Series 40 Devices
Learn about the Flash Lite sound implementation on Nokia Platforms. This document describes the generic sound issues with Flash Lite 1.1 from Adobe and looks at specific hardware- and platform-related issues. The package also includes examples that illustrate some of the issues described in the document.

VoIP Overview on S60 Platform
This presentation explains the VoIP concept, its commercial deployments, Nokia Voice Convergence Devices, and how to utilize the Nokia VoIP client.

Developing 3rd Party VoIP Clients on S60 Platform
This presentation covers the Forum Nokia support offering for VoIP developers, and needed technologies, enablers, and S60 Platform hooks including SIP & RTP, WLAN, audio components (APS and VoIP Audio Service API), and audio functionalities related to CS call for developing VoIP applications.




