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
Nokia releases new Qt developer offerings
Forum Nokia Developer Conference, India
Optimise your website for mobile devices with mobile web templates and layouts
Zoom and Rotate Gestures in FlashLite for touch-enabled devices
Jackson Feijó
Read more about Jackson on the Champions website.
Nokia Developer Days in South Africa
December 01, 2009
Johannesburg, South Africa
Forum Nokia Developer Conference ’09, India
December 07, 2009
Bangalore, India
LeWeb
December 09, 2009
Paris
Web Runtime Coding With Aptana WRT Plug-in
December 09, 2009
9am New York | 2pm London | 4pm Helsinki
Web Runtime Coding With Aptana WRT Plug-in
December 09, 2009
9:30am New Delhi, noon Beijing

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 significantly improved. The example application has been developed for Symbian S60 5.0 and touch UI. Important classes: CCoeControl, MTouchFeedback, CFbsBitmap, CFbsBitGc, CFbsBitmapDevice, CAknToolbar, CAknToolbarExtension, MAknToolbarObserver.

Web Runtime: BetaLabsWidget Example
This web widget application demonstrates a thin client that connects to Nokia Beta Labs using its HTTP API and Guarana UI library components.

ApiBridge
ApiBridge enables developers to extend the features of Web Runtime widgets using various capabilities of Symbian OS.

Qt for S60 Developer's Library
The Qt for S60 Developer's Library is an information package for developers writing Qt applications with the Qt 4.6 Beta for the Symbian Platform. The library includes introductory information about Qt for Symbian, how Qt works on the Symbian platform, porting from Symbian to Qt, and porting Desktop Qt applications to Qt for Symbian. The library is published in online, Eclipse plugin and standalone formats.

Nokia WRT Plug-in for Visual Studio
Nokia WRT Plug-in 2.0 for Visual Studio (in English only) provides an updated set of tools for the creation, testing, debugging, validation, packaging, and deployment of Web Runtime (WRT) widgets in Visual Studio. Version 1 is also available in Chinese (simplified and traditional), German, Japanese, Korean, Russian, and Spanish.

Layout Samples for Mobile Web Templates for High-End Devices
These layout samples are created using components from the Nokia Mobile Web Templates for High-End Devices. The layouts illustrate common ways to combine components within the context of a corporate website, a news website, and an online store. Layout Samples for Mobile Web Templates for High-End Devices is part of the Mobile Web Templates and Layout Samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Layout Samples for Mobile Web Templates for Low-End Devices
These layout samples are created using components from the Nokia Mobile Web Templates for Low-End Devices. The layouts illustrate common ways to combine components within the context of a corporate website, a news website, and an online store. Layout Samples for Mobile Web Templates for Low-End Devices is part of the Mobile Web Templates and Layout Samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Nokia Mobile Web Templates for High-End Devices
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.
Mobile Web Templates for High-End Devices is part of the Mobile Web Templates and Layout Samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Layout Samples for Mobile Web Templates for Mid-Range Devices
These layout samples are created using components from the Nokia Mobile Web Templates for Mid-Range Devices. The layouts illustrate common ways to combine components within the context of a corporate website, a news website, and an online store. Layout samples for Mobile web templates for mid-range devices is part of the Mobile web templates and Layout samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Nokia Mobile Web Templates for Mid-Range Devices
The Nokia Mobile Web Templates are a series of custom, tested mobile Web styles and components. Creative developers can mix and match components as needed or use the full series to completely customise their website or application. This series of templates is primarily intended for mid-range devices. Mobile Web Templates for Mid-Range Devices is part of Mobile Web Templates and Layout Samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Nokia Mobile Web Templates for Low-End Devices
The Nokia Mobile Web Templates are a series of custom, tested mobile web styles and components. Creative developers can mix and match components as needed or use the full series to completely customise their website or application. This series of templates is primarily intended for low-end devices.
Mobile Web Templates for Low-End Devices is part of the Mobile Web Templates and Layout Samples series. For an introduction and more information, see Mobile Web Templates - introduction to templates.

Nokia Test Criteria for Symbian C++ Applications
This document covers all requirements that Nokia has set in addition to the Symbian Signed test criteria that need to be fulfilled when Symbian C++ applications will be embedded to Nokia devices as part of Nokia Total Product Offering (TPO) or an operator variant project.

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.

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 and the Symbian Developer's Library v9.3. It also provides links to documentation and example applications available on Forum Nokia.

Qt: QSimpleImageViewer Example
This Qt C++ application demonstrates how to scale, load, and convert images and show them on the screen.

Qt: QPlugin Example
This Qt C++ example application demonstrates how to extend an application with Qt plug-ins.

Nokia WRT Plug-in for Aptana Studio
Now supporting Linux based Ubuntu 8.04 and Apple Mac OS X Snow Leopard, the Nokia WRT Plug-in 2.2 for Aptana Studio provides a set of tools for creating, testing, debugging, and deploying Web Runtime (WRT) widgets.

WRTKit Developer’s Guide
This is the developer’s guide for WRTKit, an unsupported set of utility components and code that provide a UI library designed to help widget developers create functionally rich and visually appealing WRT widgets. The guide describes the use of the WRTKit components, offers several tutorials on using WRTKit, and provides a detailed API reference.

Qt: QSharedMemory Example
This Qt C++ client/server application demonstrates how to share memory between processes.

Qt: QSolitaire Game Example
This Qt example application is a cross-platform application based on the Qt Graphics View Framework and SVG graphics that runs in different Qt environments. Besides the S60 platform and Windows Vista, the updated example has been modified to support Qt for Maemo on the Nokia N900.

Design and User Experience Library
The Design and User Experience Library gathers all essential aspects of design and usability into one. The library includes different kinds of guidelines, material about theme design, graphics design, and game design, as well as the basics of usability.

Nokia Test Criteria for Java™ ME Applications
This document describes test cases that can be conducted in addition to Unified Testing Criteria related to the Java Verified program. It covers all requirements that Nokia has set in addition to the Unified Testing Criteria that need to be fulfilled when Java™ Platform, Micro Edition (Java™ ME) applications or games will be embedded to Nokia devices as part of Nokia Total Product Offering (TPO) or an operator variant project.

Flash Lite Components
This resource file includes ten Flash Lite components; Button component, Calendar component, Checkbox component, Contacts component, List component, Media data component, Messaging component, Pop-up component, Radiobutton 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.

Series 40 Platform: USB Audio Device Requirements
Learn about the capabilities and characteristics that audio devices must support to comply with the Series 40 USB host. The document lists the mandatory and optional features for Audio Class 1.0 support.

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: 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, Maemo, and Windows XP. The application has been tested to work on the latest Qt for S60 4.5.2 Tower release and Qt for Maemo on the Nokia N900. Important classes: QPushButton, QLayout.

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.

Extensions Plug-ins for S60 3rd Edition and S60 5th Edition SDKs
The Extensions Plug-in 1.1 for the S60 5th Edition SDK for Symbian OS is now available, with 7 new APIs focusing on providing support for the MPX framework.
The extensions plug-ins for S60 3rd Edition and S60 5th Edition SDKs provide additional APIs to an S60 platform SDK. As a result, the plug-ins enable a greater range of applications to be built and tested.

Qt for S60: QMemoryGame Example
This Qt C++ example application demonstrates how to implement the Qt UI on top of an existing Open C++ engine that was initially developed for the Open C++ Memory Game Example published on Forum Nokia. The example has been tested to work on S60 3rd Edition and 5th Edition devices with Qt for S60 4.5.2 Tower release. It supports both keypad and touch UI. Important classes: QGraphicsPixmapItem, QGraphicsScene, QMainWindow.

S60 Platform and Device SDKs for Symbian OS
Now including the 1.0 version of the Nokia N97 SDK, the all-in-one S60 SDKs enable application development using C++, Open C/C++, Java technology, Web technology, and Python (using the Python for S60 SDK plug-in). The SDK includes all the key resources needed for application development, such as documentation, API reference, examples, and an emulator. An IDE is not included.

Carbide.ui Theme Edition Plug-ins
Carbide.ui plug-ins extend the features of Carbide.ui to allow for the creation of themes for new platforms and specific devices.

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.

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: QFriendFeed Example
This Qt C++ example application is a social networking application that integrates to a
FriendFeed microblogging engine (http://friendfeed.com/). QNetworkAccessManager is used to access the FriendFeed RESTful API to retrieve and post XML data which is parsed using the SAX parser. Though optimised for various S60 screen
layouts and input mechanisms, the UI relies on Qt cross-platform UI components. Their appearance is modified using CSS style sheets. The application has been tested to work on S60 3rd Edition and S60 5th Edition devices, with touch UI and keypad, and with Qt for S60 version Tower 4.5.2. Cross-platform support has
been verified on Windows XP.

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.

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.

Series 40 UI Style Guide
Get an overview of the Series 40 user interface and learn its essential parts. This document is targeted for anybody who needs a general overview of UI design principles for designing well-integrated, consistent, and usable Series 40 mobile services and applications.

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.

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.

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.

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.

Mobile Sensor API (JSR-256) Add-on for Nokia 5800 XpressMusic
An S60 installation file that enables the Mobile Sensor API (JSR-256) to be added to the Nokia 5800 XpressMusic.

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.

SIP VoIP Settings
These SIP VoIP Settings applications enable users to configure VoIP settings on S60 devices supporting Nokia S60 VoIP Release 2.2, 2.3, 3.0 or 3.1.

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

Release Note for Nokia Series 40 VoIP Releases
This document describes how the Nokia Series 40 Voice over IP (VoIP) implementations have evolved between releases. It identifies the new features and configurable settings for each release, and provides references to the relevant technical documentation.

Nokia Series 40 VoIP v81 Configuration Tutorial
This tutorial describes the configuration of Nokia Series 40 Voice over IP (VoIP) release v81.

Series 40 v72 VoIP Settings Example
This archive includes an example Series 40 VoIP XML-based client provisioning document. The document includes the VoIP provisioning document (w9013), NAT/FW settings provisioning document (w902e), SIP settings provisioning document (w9010), and IAP WLAN settings document. For a description of the parameters used in the document, please see the corresponding version of the Series 40 VoIP configuration tutorial.

Series 40 v81 VoIP Settings Example
This archive includes an example Series 40 VoIP XML-based client provisioning document for v81 release. For a description of the parameters used in the document, please see the corresponding version of the Series 40 VoIP configuration tutorial.

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.

Local Client Provisioning Plug-ins for VoIP
These plug-ins enable SIP-based, VoIP-related settings to be created on selected S60 devices by use of a file included in an application installation package. This file based provisioning eliminates the need for OTA provisioning of these settings via SMS.

Series 40 Platform SDKs
The Series 40 SDKs enable developers to quickly and efficiently run and test Java and Flash Lite applications as well as browser and MMS content. The latest SDK, Series 40 6th Edition SDK, includes support for the Location API for JME™ (JSR-179), Flash Lite 3 from Adobe, and a WebKit open-source browser.

Series 40 Platform SDKs’ World Languages Packs
The World Languages Packs for the Series 40 Platform SDKs provide developers with additional language support in the Series 40 emulators. The SDKs are shipped with Dutch, English, French, German, Italian, Portuguese, Spanish, and Turkish. An SDK should be installed before its language pack is installed.

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.

S60 Platform: Audio Output Streaming Example
This updated C++ example application demonstrates the key functionalities of the
Audio Streaming API by playing generated waveforms and Pulse-Code Modulation (PCM) sound data from a file. The updated example has been tested to support S60 5th Edition and touch UI. Important classes: CStreamAudioEngine, CMdaAudioOutputStream, MMdaAudioOutputStreamCallback.

S60 Platform: MMS Example
This updated C++ example demonstrates how to create multimedia messages using the
CMmsClientMtm API. The updated example has been tested to support S60 5th Edition and touch UI.
Important classes: CMsvEntry, CMmsClientMtm.

S60 Platform: Sound Mixer Example
This C++ example demonstrates how to play (a maximum of 16) simultaneous voices.
The example has eight blocks moving on the screen and playing sounds when they
collide with a wall or with each other. The updated example has been tested
to support S60 5th Edition and touch UI. Important classes: CMdaAudioOutputStream, TMdaAudioDataSettings, MMdaAudioOutputStreamCallback, RThread, RSemaphore, RMutex

Application of the Week: KuneriLite
KuneriLite, from privately held mobile innovation company Kuneri Ltd., is a rapid application development add-on toolkit for the S60 3rd Edition SDK that makes it easy to develop applications using Flash Lite from Adobe. The toolkit allows developers to create applications without any prior knowledge of either C++ or the Symbian OS. This application is a part of Forum Nokia's 2008 Innovation Series. Return to the Application of the Week landing page for more details.

Open C++: Memory Game Example
This Open C++ example application demonstrates a simple memory game. The game engine part was written in Open C++ and the UI part was written in Symbian C++. The application supports S60 3rd Edition and S60 5th Edition devices. Keypad and touch UI are supported depending on the device. In the updated version, the UIDs of the help files and the package file have been changed for improved compatibility. Important classes: RTimer, CMdaAudioPlayerUtility, CAknQueryDialog, CAknMessageQueryDialog, CAknRadioButtonSettingPage,
CEikTextListBox, CFbsBitmap, CAknIndicatorContainer, MTouchFeedback.

Application of the Week: WaveSecure
Like its name implies, WaveSecure is a security application for Nokia S60 devices that helps users protect both their mobile device in case it lost or stolen, as well as their personal data and privacy. In the event of a loss, this client/server anti-theft software provides advanced locking, tracking, and monitoring systems to help you recover your valuable S60 device. This application is a part of Forum Nokia's 2008 Innovation Series. Return to the Application of the Week landing page for more details.

S60 Platform: Location Example
This C++ code example implements a practical use case of location-based services. The example demonstrates a use case of requesting the global positioning system (GPS) location of another device via short message service (SMS) and displaying the distance to the device as well as its location. The updated example has been tested to support S60 5th Edition and touch UI. A self-signed version can be installed on S60 3rd Edition, Feature Pack 2 and newer devices.

S60 Platform: Time Zone Localiser Example
This C++ code example demonstrates how to convert UTC time to local time using the time zone server (RTz) and how to add, remove, or find a city in the database using the TZLocalizer API, introduced in Symbian OS v.9.1 (S60 3rd Edition). The updated example has been tested
to support S60 5th Edition and touch UI. Main classes: RTz, CTzLocalizer.

S60 Platform: Sudoku Game Example
This C++ example demonstrates how to implement a simple custom UI game that handles different layouts and multiple screen resolutions, and supports several input
methods (keyboard and touch UI). Classes: CCoeControl, CFont, AknUtils, CFbsBitmap, CFbsBitGc, CFbsBitmapDevice

Sensor API Plug-in for S60 3rd Edition SDK for Symbian OS, Feature Pack 2
This plug-in provides a port of the Sensor APIs introduced in S60 5th Edition to S60 3rd Edition, Feature Pack 2.

Application of the Week: Mobiola Video Studio
Mobiola Video Studio is a conversion tool that can convert video files to a format acceptable for viewing on your S60 device. You can use this application to easily move videos to any target device with a single drag-and-drop operation on the PC. This application is a part of Forum Nokia's 2008 Innovation Series.

Application of the Week: Mobi Screen Maker
Mobi Screen Maker, from Brisbane, Australia-based Moket Pty Ltd., creates engaging Adobe Flash Lite mobile content, enabling consumers to customise their own animated screen savers and wallpapers and have them delivered in real-time back to their mobile devices. This application is a part of Forum Nokia's 2008 Innovation Series. Return to the Application of the Week landing page for more details.

Python Training Course
Learn about Python, the open source programming language optimized for rapid application prototyping. Python is an object-oriented scripting language that is easy to learn and use, and is supported by many platforms. This material covers the following topic areas: Python on S60, Programming Basics, Python S60 Modules, and Python Sockets.
The material assumes some familiarity with object-oriented programming languages.

S60 C++ Introduction Training Course
This course is intended for experienced Symbian C++ developers interested in developing applications for the S60 developer platform. Topic areas include are S60 Background, S60 UI Architecture, UI Controls, List Controls, Deployment, Data Persistence, Multimedia Framework (MMF), and Carbide.c++ IDE. This packet includes training documentation and lab exercises with example code.

Application of the Week: NAVITIME
NAVITIME is an award-winning point-to-point navigation application for use with S60 mobile devices, enabling individuals to find the fastest and most practical travel route from “point A” to “point B” through a combination of options, including walking, driving, public transit, and flying. This application is a part of Forum Nokia's 2008 Innovation Series. Return to the Application of the Week landing page for more details, and to download a free trial version of the application.

XML Data Binding Library
The XML Data Binding Library is a Nokia signed SIS file that enables applications using code created with the Nokia WSDL-to-C++ Wizard for S60 to run on S60 3rd Edition devices from Nokia.
Carbide.ui Theme Edition
Carbide.ui Theme Edition enables the creation and editing of themes for S60 and Series 40 devices. Carbide.ui provides professionals and hobbyists alike with access to more than 1,000 customizable elements in the S60 UI, which makes the S60 UI the most customizable UI available.

S60 5th Edition E-learning
This e-learning module gives an overview of the possiblitilies offered by S60 5th Edition. The module discusses the additions such as touch UI and sensor and search frameworks and presents the enhancements including Open C libraries and Platform Services.
Application of the Week: OneView Voice Reminder
Voice Reminder is an application for use on S60 3rd Edition mobile phones to keep track of important events and notify the user through voice and text messages at predefined times. The application helps individuals save time by recording a voice message as a reminder in the device instead of typing a text message. This application is a part of Forum Nokia's Innovation Series.

Carbide.c++
Carbide.c++ is a family of powerful mobile-application development tools built on the Eclipse framework, which are available free of charge to all Symbian C++, Open C/C++ and Qt developers.

Designing Web Content and Services for Nokia S60 Devices E-learning
This e-learning module describes how to design Web sites to provide a pleasant browsing experience for mobile users. The e-learning module discusses mobile Web browsing characteristics, Web Runtime environments, Web page design issues for mobile Internet devices, the most important Web site development and testing tools, and offers a state-of-the-art overview of the existing technologies and tools available for Web developers. The module focuses on developing Web content for S60 devices but the information can be applied to other devices as well.

OMA DM: Management Object for Browser
The purpose of this document is to define the Browser Management Object v1.0 settings format for Open Mobile Alliance (OMA) Device Management (DM) usage. The definition of the parameter settings formats consists of tree structure, instance identifiers, and a detailed description of the management tree.

OMA Device Management: Management Object for DMAcc for DM 1.2
This document describes the Nokia implementation of OMA Device Management DDF for DM account. The DM account object is used for configuring DM account details at the devices. DM account provides all the details for the device to establish a successful device management session with the Device Management server. A device can have multiple DM accounts for different management purposes. The parameters mentioned in this document apply to selected S60 3rd Edition, Feature Pack 2 and S60 5th Edition devices onwards.

Nokia Series 40 VoIP v81 Implementation Specifications
This document describes how the implementation of Nokia Series 40 Voice over IP (VoIP) v81 Release fulfills the IETF, 3GPP, ITU, OMA, and other specifications.

Nokia Series 40 VoIP v72 Implementation Specifications
This document describes how the Nokia Series 40 Voice over IP (VoIP) implementation fulfills the IETF, 3GPP, ITU, OMA, and other specifications.

Widgets for the S60 Platform E-learning
This e-learning module introduces the 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.

Nokia Series 40 VoIP v72 Configuration Tutorial
This tutorial describes the configuration of Nokia Series 40 Voice over IP (VoIP) release v72.

Series 40 Platform: Introductory White Paper
This document provides an overview of the Series 40 platform.

Essential S60: Creating Location-Aware Applications
This Essential S60 booklet provides background information about positioning technology and location-aware applications, and also provides an introduction to the S60 APIs for developers using Symbian C++, Java ME, Web Runtime, or Flash Lite.

SNAP Mobile SDK
The Scalable Network Application Package (SNAP) Mobile SDK enables development of connected Java™ games that take advantage of Nokia’s SNAP Mobile technology. SNAP Mobile is a Java counterpart to N-Gage™ Arena.

S60 Platform: Application Views (with Examples)
This updated package covers the usage of application views in C++ applications. A Symbian C++ application can launch not only its own views but also certain external applications and their views. The package includes one document and two example applications. The document includes application and view UIDs of certain S60 core applications. The MyView example demonstrates how to build your own GUI application using the view architecture and how to use external application views. The second example, AppUidViewer, is a utility that can be used to find out all installed applications and their application UIDs on a device at run time. The example applications have been updated to support S60 5th Edition and touch UI. Important classes: MyView example:
CEikLabel, CAknView, CAknTabGroup. AppUidViewer example: RFile, RApaLsSession, TApaAppInfo, CAknButton.

SNAP Mobile SDK Data Sheet
A data sheet for the SNAP Mobile SDK.

Nokia handsets with Flash Lite Installed
A list of Nokia handsets that have Flash Lite preinstalled. There are 94 total models listed for both S60 and Series 40 platforms.

RGA: Tetromino Game Example
This application demonstrates how to create a game using the S60 Real-Time Graphics and Audio (RGA) API and the Open C API. This application is meant for game developers who are new to Symbian C++ and are planning to port a C or C++ application to the S60 platform. The UI has been implemented using RGA instead of Symbian C++ APIs. The example application is built on the Tetris game engine (grid and block classes) available for download at http://www.newlc.com/An-application-for-Series-60-a.html.
Important classes:
ITextInputObserver, IOneShotTimer, ITimerObserver, BitBlitAlphaMask, IGraphicsContext

RGA: Biowaste Game Example
This C++ application demonstrates how to create a 2D mobile game for S60 devices using Real-Time Graphics and Audio (RGA) APIs.

S60 Platform: Contacts Model API Example
This C++ example is a simple application demonstrating the use of the Contacts
Model API. It allows viewing contact items from the default contacts database.
Each contact is shown using a custom text definition. New contacts can be
imported from files that contain vCard items. A contact item can also be
selected and exported to a file in the vCards format. The example has been
tested to support S60 5th Edition and touch UI. Important classes: CContactTextDef, CContactIdArray.

Application of the Week: we:offset
One application that exemplifies the goals of Forum Nokia's Calling All Innovators "Eco-Challenge" that was developed by Nokia is called “we:offset." It is the the world's first CO2 emission offsetting tool for your mobile phone. The we:offset application is a free download, and it can be used on any Nokia S60 device.

OMA DM: Management Object for SIP
This document defines the SIP Management Object settings format for Open Mobile Alliance (OMA) Device Management (DM) usage. The document is a Nokia interpretation of the OMA Device Management specification. These settings apply to Nokia devices supporting Nokia VoIP implementation.

OMA DM: Management Object for NATFW
This document defines the NATFW (Network Address Translator Firewall) management object settings format for Open Mobile Alliance (OMA) Device Management (DM) usage. The document is a Nokia interpretation of the OMA Device Management specification. These settings apply to Nokia devices supporting Nokia VoIP implementation.

S60 Platform: DBMS Example
The DBMS (Database Management System) example application demonstrates the
usage of DBMS APIs. The example includes a bookstore database engine and a
simple Avkon GUI for testing the engine. The example has been tested to
support S60 5th Edition and touch UI. Main classes: RDbStoreDatabase, RFs.

Application of the Week: Kyte
Kyte makes it possible for S60 3rd Edition device users to quickly produce both live and recorded video. After making the video, you can easily distribute it to multiple online and mobile destinations, and then you can engage with an audience using multimedia chat. Click on the PDF to learn more about Kyte.

S60 Platform: Image Converter Example
This example demonstrates how to use the image conversion APIs available in the S60 platform (Image Conversion Library, ICL). These APIs include important classes, such as CBitmapRotator and CBitmapScaler to be used for rotating and scaling images, respectively. CImageEncoder and CImageDecoder classes are used to access image encoders and decoders available in the ICL. Images can be opened, rotated, scaled, and saved in the same or a different format. The UI of the updated application has been optimised for touch using, for example, long taps and tactile feedback. The example project supports building for both S60 5th Edition with touch UI and S60 3rd Edition with a traditional keypad. Important classes: CAknLongTapDetector, MTouchFeedback, CBitmapRotator, CBitmapScaler, CImageEncoder, CImageDecoder, CFbsBitmap, CAknQueryDialog.

S60 Platform: SMS Example
This updated C++ example demonstrates programmatical handling of SMS messages. Messages
can be sent from the application and they can be received directly into the
application (that is, catching incoming messages before the user gets any
notification). In addition, messages can be deleted, copied, or moved to other
folders of the message store (inbox, outbox, drafts). The example has been updated
to be compatible with S60 5th Edition and touch UI. Important classes: CMsvSession, CMsvEntry, CMmsClientMtm, CSmsClientMtm, CClientMtmRegistry, KMsvMessagePartBody, ESmsMtmCommandScheduleCopy, CSmsSettings, CSmsHeader.

Application of the Week: WHERE
With the use of the WHERE platform from uLocate Communications, Inc., you can find myriad useful answers. You can use WHERE’s location-based widgets to answer questions ranging from where is the nearest brew pub, to where are my friends right now? You can also find answers to questions that you might not have even thought about previously.

S60 Platform: Scalable UI Example
This C++ example application (Noughts and Crosses) demonstrates the scalable UI and
SVG-T icons. The example has been updated to support touch UI. It has been designed
to work on all devices from S60 3rd Edition onwards and it supports different screen
sizes, orientations, and both the touch UI and a traditional keypad.

S60 Platform: Settings Screen Example
This C++ code example explains the basic construction of settings screens, including setting item lists, setting items, and setting pages. The application consists of a single view - a Setting List that has a variety of different types of settings that can be manipulated. The application has been updated to be compatible with S60 5th Edition and touch UI. Important classes: CAknView, CAknSettingItem, CAknSettingItemList,
CAknEnumeratedTextSettingItem, CSelectionItemList.

S60 Platform: Dynamic Setting List Example
This example demonstrates how to load CAknSettingItemList dynamically at run
time instead of defining the list structure into a resource file. In the example, the lists are loaded during application startup. The example can be used as the basis for many different applications where a list has to be loaded dynamically (for instance, based on external
feed from a server). Note that CAknSettingItemList itself is not ideal for dynamic loading, but it is possible by using dummy resource IDs and defining all the required list item types in the source code. At run time it is then possible to load multiple instances of each list item type (with any label and value). The application has been updated to be compatible with S60 5th Edition and touch UI. Important classes: CAknSettingItemList.

S60 Platform: Calendar Interim API Example
This C++ application demonstrates how to add and modify anniversary entries using the Calendar Interim API (also known as CalInterim API). The Calendar Interim API replaced the Agenda Model API in Symbian OS v9.1 (S60 3rd Edition). The application has been updated to be compatible with S60 5th Edition and touch UI. Important classes: CCalEntry, CCalEntryView, CCalInstance, CCalInstanceView, CCalAlarm, CCalSession, MCalProgressCallBack.

S60 Platform: Thread and Active Objects Example
The example demonstrates how to create an active scheduler and how to use active
objects inside a new thread. Inside the main thread (main program) the framework
creates the active scheduler automatically, but inside a new thread the active
scheduler must be created by the developer. One active object is a Bluetooth device
discoverer that searches Bluetooth devices in the vicinity and displays them in
the listbox. The example has been tested to be compatible with S60 5th Edition and touch UI. Important classes and headers: RThread, RSocketServer, Btnotifier.h (Bluetooth notifier API).

S60 Platform: Scalable Screen-Drawing Example
This C++ application demonstrates scalable screen drawing with Direct Screen Access and custom drawing routines using SVG-T icons and bitmaps. The application scales to multiple display resolutions in portrait and landscape orientations supported by the S60 platform. This example is targeted especially at games and multimedia developers who prefer developing a custom UI instead of using an automatically scaling UI, such as S60 Avkon components. Labeling for the middle softkey has been added in the updated version. The application supports middle-softkey labeling and it has been updated to be compatible with S60 5th Edition and touch UI. Important classes: CIconFileProvider, MDirectScreenAccess, MAknIconFileProvider, CCoeControl (HandleResourceChange() method and KEikDynamicLayoutVariantSwitch), CEikAppUi (ApplicationRect(), Orientation(), and SetOrientationL() methods), AknLayoutUtils (PenEnabled() method).

Nokia S60 VoIP Implementation Configuration Tutorial
This tutorial describes the configuration of the Nokia S60 Voice over IP (VoIP) implementation.

Nokia S60 VoIP Implementation Troubleshooting Guide
This document describes possible problem situations with Nokia S60 Voice over IP (VoIP) client configuration and provides instructions on how to solve them.

OMA DM: Management Object for Device Encryption
This document describes an OMA Device Management (DM) management object for device encryption. This document is applicable for S60 3rd Edition, Feature Pack 1.

Java ME for Nokia Platforms E-learning
This e-learning module gives a brief tutorial on how to start developing Java ME applications for Nokia mobile platforms. This module includes the development process, the use of standard Java ME features, and the use of additional MIDP APIs. The module assumes some familiarity with the Java programming language and basic object-orientation concepts.
Application of the Week: UbiSafe
UbiSafe is a location-based services (LBS) application that enables mobile device users to easily address their own personal security and emergency needs, as well as those of family, friends and individuals with special needs, such as children, the elderly and invalids. Click on any of the links to the right to learn more about UbiSafe.

S60 Platform: Access Points Example with Roaming Support
This C++ code example demonstrates how an application can open an Internet connection and manage access points. The application opens a connection to a predefined Internet access point (IAP). From S60 3rd Edition, FP2 onwards, a predefined service network access point (SNAP) is used, which enables application-level roaming. Note that access point management features implemented as an option in the example require WriteDeviceData and NetworkControl capabilities. This application has been tested to support S60 5th Edition and touch UI. The example package contains a video demonstrating how to use the application. Documentation about application-level roaming and service network access points is provided in the C++ Developer's Library Extension for S60 3rd Edition FP2 MR/Communication section. Important classes: MMobilityProtocolResp, TAccessPointInfo, CActiveCommsMobilityApiExt, CCmApplicationSettingsUi, TCmSettingSelection, TBearerFilterArray.
Application of the Week: HAVA Mobile Player
The HAVA Player lets you watch live TV shows – or other recorded content – from your home television on your S60 device. Sounds good, right? It gets better. By using your device’s 3G or WLAN connection, you can watch those shows anywhere that you happen to be. You can take all of your favorite shows with you and watch them on the go. Click on any of the links to the right to learn more about HAVA Mobile Player.

Series 40: Nokia Flash Lite (NFL) Package Format
This document outlines a procedure and file format for distributing Flash Lite from Adobe content to Series 40 devices. The format is handled correctly by Nokia devices compatible with Series 40 5th Edition, Feature Pack 1 or newer. The .NFL format offers developers the chance to package related resource files together and to launch content using an icon in the same way as “full” applications. This format improves both the publishing and user experience of Flash Lite content onto a wide range of Nokia devices.
Application of the Week: JoikuSpot Light
JoikuSpot Light is a free mobile application that can be installed directly onto a 3G connection-enabled S60 3rd Edition device, such as the Nokia N95 multimedia computer. Your 3G connection then becomes your own local WLAN hot spot, wherever you are – including in a moving train or car. Click on any of the links to the right to learn more about JoikuSpot Light.
Application of the Week: Qik
Qik allows you to share live video from your S60 3rd Edition device with your friends and interact with them via text while the video is streaming. Qik (pronounced "quick") lets you control with whom you will share your videos – whether that includes family and friends, or anyone on the Web.
Application of the Week: Backup-Pal
Backup-Pal is a little time saver that is big on convenience. This external storage device fits in the palm of your hand, and connects directly to your S60 or Series 40 mobile device to back up or restore your personal information and contacts.
Application of the Week: WebMessenger
WebMessenger Mobile for Microsoft Office Communications Server is now available for use on Nokia S60 3rd Edition devices, creating new opportunities for business collaboration among office-based and mobile professionals.
Application of the Week: Whrrl
Whrrl is a free, social-discovery tool that combines in-depth data and personal recommendations from the user’s social circles with location-based services. Whrrl users have instant access to millions of points of interest throughout the U.S.

Flash Lite: Tips and Tricks
This document lists some useful tips and tricks to assist in creating content and applications using Adobe Flash Lite on Nokia platforms.
Application of the Week: Plusmo
Plusmo is a leading provider of mobile “widgets” that deliver rich, personalized experiences for consumers on a broad range of Nokia devices. Plusmo’s service enables people to extend social networking, track live sports, get news updates, watch videos, and play games through their mobile phones anytime and anywhere. Click on any of the links to the right to learn more about Plusmo.

Series 40 Nokia 6212 NFC SDK
The Series 40 Nokia 6212 NFC SDK enables the development of Java™ applications with NFC capabilities for the Nokia 6212 classic phone.

Carbide.c++ Development Tool for Symbian OS, v1.2.2.5
Carbide.c++ v1.2.2.5. Zip File. This does not come with an installer. User should extract the ZIP file into
c:\program files\nokia\Carbide.c++ v1.2\

Adobe Flash Lite 2.x Components for Mobile Development
This package provides components for Adobe Flash Professional 8 and Adobe Flash CS3. The package includes mobile components for status indicators (device battery charge and signal level) and a general list component. The components can be further customized with custom graphics and parameters.

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 library is available as a stand-alone version, as an Eclipse plugin and in HTML format online. The first two versions support searching through the Eclipse platform.

Flash Lite 2.0: Screen Saver and Wallpaper
This document explores the different features of Flash Lite 2.0 for creating dynamic screen saver and wallpaper animation. The concepts discussed include using ActionScript to adjust the visual content to fit the stage, and creating visual interest with randomness and the application of a dynamic mask.

S60 Platform: Bluetooth API Developer's Guide
This document provides information on how to develop Bluetooth applications in C++. In Symbian OS, the Bluetooth API consists of various components, and there are also some additional S60 APIs. The document describes how to perform typical Bluetooth tasks such as discoverability and service advertising, device and service discovery, and communication using different protocols. Security and platform security, configurations, and changes in the Bluetooth API v2 architecture (introduced in S60 2nd Edition, Feature Pack 2) are also described. The document provides several code snippets from separately published code examples.

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.

Mobile Design Showcases
This document highlights some
examples of good mobile design, evaluating them on the basis of interactivity, ease-of-use, and visual look.

Advertising in Mobile Devices
This article provides guidelines for effective, user-friendly mobile advertising. The guidelines are divided into three subcategories: General, Placement, Content and Context, and Taking care of the user.

S60 Platform: 3D Game Engine Example with Sensor Support
This C++ example application demonstrates a simple 3D engine. The engine produces a simple car game where you can drive a car around a wide parking lot. Everything seen on the screen is rendered in 3D. The example utilizes OpenGL ES and the application dynamically scales on all screen sizes of S60 devices.

The Value of Good Design
This article gives an explanation to what is good design and why it should be pursued in the first place. The article discusses the very core of design and the value that good design can bring to the end product. The article also takes a look into design today and tomorrow.