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
Felipe Andrade
Read more about Felipe on the Champions website.
Ovi Store Publisher Reporting
July 08, 2009
9 a.m. New York, 2 p.m. London, 4 p.m. Helsinki
Ovi Store Publisher Reporting
July 08, 2009
11 a.m. San Francisco, 2 p.m. New York
Nokia World 09
September 02, 2009
Stuttgart, Germany
Adobe MAX 2009
October 04, 2009
Los Angeles
International CTIA WIRELESS I.T. & Entertainment 2009
October 06, 2009
San Diego, California

Qt: Noughts and Crosses Game Example
This Qt example application is a Noughts and Crosses game that demonstrates a cross-platform application with a custom layout using QLayoutManager and style sheets for buttons. The application supports touch UI and keyboard. It has been designed to work on the S60 platform with Qt for S60 4.5.2 Tower release, maemo, and Windows XP. Important classes: QPushButton, QLayout.

Qt: QSolitaire Game Example
This Qt C++ example application demonstrates a cross-platform Solitaire game that runs in different Qt environments such as the S60 platform (with Qt for S60 4.5.2 Tower), maemo, and desktop Windows. The application uses the Qt Graphics View Framework and Scalable Vector Graphics (SVG) for drawing 2D graphics. The application supports touch UI. Important classes: QGraphicsView, QGraphicsSvgItems, QGraphicsScene, QWidget.

Java™ ME Developer's Library
Java™ ME Developer's Library is a complete resource package with introductory, getting started, tutorial, and API level information for developers wishing to use the S60 or the Series 40 platforms for developing mobile Java applications or services.
This library is available in HTML format online, as a stand-alone version, and as an Eclipse plug-in.

Qt for S60: QSharedMemory Example
This Qt C++ application demonstrates how to share memory between processes. The client GUI application and the server executable share memory through QSharedMemory. The example has two shared memory areas: one for the client to command the server, and another for the server to respond to the client. The example has been tested to work on S60 3rd Edition and 5th Edition devices with Qt for S60 4.5.2 Tower release. Important classes: QSharedMemory, QProcess.

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 online and as a standalone version.

Qt for S60: QTabs Example
This Qt C++ application demonstrates how to implement a Qt for S60 application with tabs. Every tab has its own Options menu. Views (QWidgets) are stored in different tabs (QTabWidget). The application has a S60-style status and control pane and it supports screen orientation changes. The example has been tested to work on S60 3rd Edition and 5th Edition devices with Qt for S60 4.5.2 Tower release. Important classes: QTabWidget, QWidget, QMainWindow.

Qt for S60: QStackedWidget Example
This Qt C++ application provides a method to implement multiple views in Qt for S60 applications (an alternative to using tabs). Views (QWidgets) are stored in a stack (QStackedWidget). On application startup, only the default view is created in the stack. To optimise memory consumption, the other views are not created until they are needed. Every view has its own Options menu and CBA buttons with view-specific commands. The example has been tested to work on S60 3rd Edition and 5th Edition devices with Qt for S60 4.5.2 Tower release. Important classes: QWidget, QStackedWidget, QMainWindow.

Qt for S60 Developer's Library
The Qt for S60 Developer's Library is an information package for developers writing Qt applications using the "Tower" release Technology Preview of Qt for S60. The library includes introductory information about Qt for S60, how Qt works on the S60 platform, porting from S60 to Qt, and porting Desktop Qt applications to Qt for S60. The library is published in online, Eclipse plug-in, and standalone formats.

Web Developer's Library
The Web Developer's Library is an information package for developers wishing to create WRT widgets for S60 devices and web pages for the Web Browser for S60. The library includes introductory, getting started, implementation, and API-level information about WRT widgets, as well as examples of creating WRT widgets. The library also includes introductory, getting started, design, and implementation information about creating web pages for the S60 Browser. This library is available online and as a stand-alone version.

Nokia Mobile Web Templates
The Nokia Mobile Web Templates provide a series of custom, styled, and tested mobile web components. You can either mix and match the components or use the full series to completely customise your mobile website or application. The components are suitable for most S60 3rd
Edition and S60 5th Edition devices from Nokia and also are compatible with newer Series 40 WebKit and maemo™ devices. See the Mobile Web Template pages for more information.

Client Provisioning Registration Forms
Client provisioning registration forms provide the information needed when creating XML-based client provisioning documents for various applications. These documents contain application IDs, parameter lists, and values that are used for different applications.

Widgets for the S60 Platform Training Course
This training course describes how to develop Nokia Web Runtime (WRT) widgets for the S60 platform devices. Widgets are web applications that can be run outside the web browser in devices compatible with the Web Runtime environment. This package includes training documentation and lab exercises with example code.

Qt for S60 QPlugin Example
This Qt C++ example application demonstrates how to extend an application with Qt plug-ins. This involves defining a common Qt plug-in interface in the GUI application and implementing media plug-ins for S60 devices. The plug-ins are installed separately, after which the client application detects installed plug-ins and content specific to plug-ins is searched for. QPlugins can be used already from S60 3rd Edition, FP1 onwards. However, with the Qt for S60 4.5.0 Garden release, the application UI has been tested to work better on S60 5th Edition touch UI devices. The QPlugin example is based on the DesktopServices example published in the Qt for S60 4.5.0 Garden release. Important classes: QDesktopServices, QMainWindow.

Guide to Flash Lite Components
The purpose of this document is to describe a generic process for creating, using, and customising Flash Lite User Interface and Data components (that is, S60 Platform Services). This guide focuses on the methodology and processes as a whole, rather than the implementation details and practices of individual components. The document is targeted at intermediate users of Flash and ActionScript from Adobe. This document is closely related to Flash Lite Components.

Flash Lite Components
This resource file includes six Flash Lite components; Button component, Contacts component, List component, Media data component, Popup component, and Scrollbar component. The components can be used to develop applications to devices supporting Flash Lite 2.0 (and above). The developing environment requirements are Adobe Flash CS3 or CS4. The resource is closely related to Guide to Flash Lite Components. Please give feedback on the components through the Flash Lite Discussion Board.

Qt for S60: QSimpleImageViewer Example
This Qt C++ application demonstrates how to use QPixmap to show images on the screen. The application has S60 style menus, status pane and control pane. The application runs on S60 devices based on S60 3rd Edition, Feature Pack 1 and newer releases, and supports both touch UI and keyboard. Important classes: QPixmap, QMainWindow, QProcess.

OMA DM: Management Object for Nokia VCC
This document defines the Nokia settings format for Voice Call Continuity (VCC) for use with Open Mobile Alliance (OMA) Device Management (DM). The document provides a description of the management object layout, specification of each node, and useful references.

Web Runtime: Hue Widget Example
This Web Runtime (WRT) widget allows users to explore and search for colours, patterns, and palettes from the popular colourLOVERS.com website API. The widget is related to the Widget design tutorial in the Design and User Experience Library.

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.

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.

Optimizing Mobile Software with Built-in Power Profiling
This document describes S60 software profiling tools that allow every developer to measure power consumption without any external equipment. Measurement analysis is carried out either on the mobile device or a PC. In addition, the document present a set of guidelines and good practices that energy-conscious developers should follow to maximise application use time. This document was originally published as a chapter in the book Mobile Phone Programming and its Application to Wireless Networking in 2007.

User Experience Evaluation Model
The Forum Nokia User Experience programme provides an evaluation service that evaluates a developer’s application from the user's point of view. The evaluation comprises multiple evaluation items described in this document. More information about the User Experience Programme can be found from the Forum Nokia website.

Web Runtime: AccuWidget Example
This S60 Web Runtime widget allows the user to check the current weather conditions and the forecast for the current and following day. The updated version supports adding the widget on the home screen (first introduced in the Nokia N97). The example application is designed to support all S60 devices with Web Runtime, both with keypad and touch UI.

Web Runtime: RouteWidget Example
This S60 Web Runtime widget demonstrates how to retrieve the current location (latitude and
longitude), travelled distance, current speed (horizontal), and number of GPS satellites. The updated example supports adding the widget on the homescreen, first introduced in the Nokia N97 device. The application can be installed on S60 devices that support Platform Services for Web Runtime (from S60 5th Edition onwards), and it is optimised for touch UI.

OMA DM: Management Object for Generic VoIP Settings
This document defines the GenVoIP (Generic VoIP) settings format for use with Open Mobile Alliance (OMA) Device Management (DM).

OMA DM: Management Object for Nokia VoIP Implementation
This document defines the Nokia VoIP implementation settings format for use with OMA DM and provides a basic example of how the objects can be managed.

New Java Runtime Features in S60 3rd Edition, Feature Pack 2 Devices
This document presents the new Java ME features of S60 3rd Edition, Feature Pack 2 in a nutshell. It provides a brief introduction to the features and links to selected Java™ ME Developer's Library topics or other relevant resources."

OMA Device Management DDF for Nokia Mail for Exchange
This document defines the Nokia Mail for Exchange (MfE) client settings format for Open Mobile Alliance (OMA) Device Management (DM) usage. The MfE client can be used on Nokia S60 devices to perform the synchronisation of email and PIM data with a Microsoft Exchange Server, and it supports the remote configuration of MfE settings such as server address, user credentials, and synchronisation schedule by OMA DM solutions. The document is a Nokia interpretation of the OMA Device Management specification and is valid from S60 3rd Edition onwards.

Qt for S60: QMemoryGame Example
This Qt C++ application demonstrates how to implement a Qt UI on top of an existing Open C++ engine that has been initially developed for Open C++: Memory Game Example published at forum.nokia.com. The example application can be compiled for S60 devices based on S60 3rd Edition, Feature Pack 1 and newer releases with touch UI or keyboard.

S60 5th Edition C++ Developer's Library
This version of the library introduces new features included in the Nokia N97 SDK. The S60 5th Edition C++ Developer's Library, incorporating the Symbian Developer's Library v9.4, 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, porting information, and information on new features available in S60 5th Edition. It also includes information on S60 UI components and using them in C++ applications, for both touch and non-touch UIs, along with links to example applications available on Forum Nokia.

Home Screen for C++ Developers
With the Nokia N97 SDK Home Screen Publishing API, you can publish data from your C++ application live to the device home screen. The Home screen section of the S60 5th Edition Developer's Library describes the home screen and provides implementation information on getting your application to the home screen.

New APIs in the Nokia N97 SDK
The Nokia N97 SDK introduces new APIs enabling applications to publish data to the device homescreen, handle out of memory situations more effectively, and compensate sensor data for device or display orientation. The Nokia N97 SDK APIs section of the S60 5th Edition Developer's Library describes how to use the new APIs in your application.

Home Screen for WRT Developers
WRT Home screen widgets allow users to view dynamic data from several widgets simultaneously without having to launch the widgets on full screen. The Home screen widgets section of the Web Developer's Library describes the home screen and provides implementation information on getting your widgets to the home screen.
S60 Theme Templates
These templates are for use with S60 3rd Edition themes created using Carbide.ui Theme Edition. The templates are available in Adobe Illustrator CS2 and CS3 formats. You can use these templates to design your own themes and theme highlights. See the Carbide.ui Theme Edition Tutorial in the Design and User Experience Library for more details.

S60 Platform: Camera Example
This Symbian C++ code example demonstrates how to easily use the onboard camera with zoom and autofocus, utilising an accompanying CameraWrapper made by Forum Nokia. The Camera Wrapper supports all Nokia's S60 devices based on S60 3rd Edition and newer, providing a unified interface for various Symbian and S60 camera APIs some of which have previously been Feature Pack specific or only available via an SDK plug-in. The example application supports the use of both the keypad and touch UI. The application can be self-signed, but it also provides an option to use the dedicated camera key (Symbian signing required). The example application replaces the separate examples published for S60 3rd Edition, FP1 (S60 Platform: Camera Example with AutoFocus Support v2.2) and FP2 (S60 Camera Example AutoFocus 3rd Ed FP2).

S60 Platform: Localisation Example
This C++ code example demonstrates how to localise an application to adapt to the selected phone language. The example application has two sets of localised strings (English and German) for the application name, labels, text, and image. The application also includes number, currency, date, and time localisation, in which the TLocale method is used for localisation even if the selected phone language is neither one of the two application languages. The updated example has been tested to support S60 5th Edition and touch UI.

S60 3rd Edition C++ Developer's Library
The S60 3rd Edition 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.

Copyright Text for the S60 SDK OSS Components
This document provides a copy of the copyright text for the OSS components included in the S60 5th Edition SDK for Symbian OS.

S60 Platform: FileList Example
This C++ code example demonstrates how to list files in a specific directory. It helps developers in creating user-friendly applications that allow users to choose files from a list of specific file types. Middle softkey labelling is
supported (introduced in S60 3rd Edition, Feature Pack 2). The updated version has
been tested to support S60 5th Edition and touch UI. Important classes: PathInfo, CDocumentHandler.

S60 5th Edition: Solitaire Game Example
This C++ example application demonstrates a fully touch-optimised application using various touch UI features of S60 5th Edition with direct manipulation. Besides tapping the cards, the user can drag and drop them using a finger or the stylus. The application demonstrates handling pointer events of custom made UI controls. Also, tactile feedback using the Touch Feedback API is received. Double buffering is used to draw on the screen to avoid flickering. By default, the cards are implemented as Scalable Vector Graphics (SVG) icons, but the example also provides an option to draw them using methods of the graphics context class CWindowGc. In the updated version, major drawing optimisation has been done. The example application was developed for S60 5th Edition and touch UI. Important classes: CCoeControl, MTouchFeedback, CFbsBitmap, CWindowGc.

Introduction to Flash Lite E-learning
This e-learning module introduces Flash Lite and goes through the steps that need to be taken when developing Flash Lite applications for Nokia Series 40 and S60 devices. The module also discusses the necessary tools. General knowledge about software development will help to understand the covered topics. Previous knowledge of Flash is also helpful but not necessary. Helpful screencast videos have been included to demonstrate how to create a simple Flash Lite application.

S60 5th Edition: Mobile Paint Example
This C++ code example demonstrates drawing and other touch UI features of S60 5th Edition with direct manipulation using, for example, CCoeControl::EnableDragEvents(). The application provides a number of drawing options that can be selected from a toolbar. There are two toolbar options, CAknToolbar and a custom floating toolbar. All application graphics have been implemented as Scalable Vector Graphics Tiny (SVGT) icons. In the updated version, the drawing performance has been improved and the functionality of the UI components fine-tuned. The example application has been developed for S60 5th Edition and touch UI. Important classes: CCoeControl, MTouchFeedback, CFbsBitmap, CFbsBitGc, CFbsBitmapDevice, CAknToolbar, CAknToolbarExtension, MAknToolbarObserver.

S60 Platform: HTTP Client Example
This updated C++ application demonstrates simple HTTP GET and POST transactions using the HTTP Client API. Basic HTTP authentication is also supported. The updated v2.2 example uses application-level roaming (introduced in S60 3rd Edition, Feature Pack 2 onwards). The updated example has been tested to support S60 5th Edition and touch UI. Important classes: RHTTPSession, RHTTPTransaction, RHTTPHeaders, MHTTPDataSupplier, MHTTPAuthenticationCallback, MHTTPTransactionCallback.

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, and showing the scroll bar, require the use of methods or classes. The example has been modified to support S60 5th Edition and touch UI. Main classes: CEikRichTextEditor, CFbsBitmap, TPictureHeader, CPicture.

S60 Platform: Descriptor Example
This C++ code example demonstrates how to use descriptors (Symbian OS strings) and related APIs. The example is an S60 application that is used to run one example method or all of them. The methods write a log on the screen or into a file that demonstrates the results of different statements. The example has been updated to support S60 5th Edition and touch UI. Important classes: TBuf, HBufC, RBuf.

S60 Platform: Power and Resource Management Example
This C++ code example demonstrates the APIs that are available for figuring out battery, charger,
and network status. It also demonstrates how to implement some of the power and resource management principles that have been discussed in the document S60 Platform: Effective Power and Resource Management. The updated example has been tested to support S60 5th Edition and touch UI. Main classes: CTelephony, CIdle, CActive.

S60 Platform: Audio Streaming Example
This C++ example application demonstrates the use of Audio Streaming API, which provides functionality for recording audio stream into a buffer, and for playback of the audio buffer. Besides playing, recording, and stopping the audio stream, the recorded audio stream can be saved into a file, to be played again later. The package includes PCM and AMR-NB encoded sample files. Audio Streaming API is part of the Symbian Multimedia Framework (MMF). The updated example has been tested to support S60 5th Edition and touch UI. Important classes: CMdaAudioInputStream, CMdaAudioOutputStream, MMdaAudioInputStreamCallback,
MMdaAudioOutputStreamCallback.

S60 Platform: Bluetooth Point-to-Multipoint Example
This C++ example application 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 (RS-232 serial port emulation) is used as the transport protocol. For device discovery, the example provides two implementations, based on Generic Inquiry and the considerably faster Limited Inquiry (LIAC). Note that LIAC requires signing with a developer certificate. The updated example has been modified to support S60 5th Edition and touch UI. Important classes:
RSocketServ, RHostResolver, CSdpAgent, SdpSearchPattern, RSdp

S60 Platform: POP/IMAP Example
This C++ application shows how to retrieve e-mail from a remote mailbox to an S60 device using IMAP and POP protocols. The usual e-mail features such as sending, editing, and deleting e-mail messages are demonstrated. The updated example has been modified to support S60 5th Edition and touch UI. Important classes: CMsvSession, CClientMtmRegistry, CMtmUiRegistry, CMsvOperation, CMsvEntrySelection, CMsvEntry, CBaseMtm.

Application of the Week: Adtronic
Adtronic, from Stuttgart, Germany-based Liquid Air Lab, offers advertising through the display of ad banners on S60 3rd edition mobile phones for direct one-to-one viewing by consumers who opt-in to receive the ads with incoming calls, text messages, and even missed calls. For every ad that is displayed, the recipient earns “ad points” that can be converted into incentives from Liquid Air Lab's bonus shop. This application is a part of Forum Nokia's 2008 Innovation Series. Return to the Application of the Week landing page for more details.