Documents/Examples
S60 Documents/Examples
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.

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

Java™ Technology FAQ v1.1
This document provides answers to frequently asked questions about Nokia’s Java™ technology strategy, the Java technology supported by Nokia, Java technology and Nokia platforms, Forum Nokia’s Java tools strategy, Nokia’s support for NetBeans, Forum Nokia’s tools for Java developers, and Nokia’s Java technology roadmap.
The document has been updated to include details on new JSR support in Series 40 6th Edition.

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, easy-of-use, and visual look.

Java ME for Nokia Platforms eLearning
This eLearning 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.

Carbide.c++ FAQ v1.3
This document answers some of the most frequently asked questions that developers and business managers ask about Carbide.c++. It provides information on how Carbide.c++ fits into to the Carbide tools portfolio, how it serves the Symbian developer community, how it was created, how it is licensed, and how developers using other tools can migrate to Carbide.c++.

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.

Java™ ME Developer's Library v2.3 (Online)
Java ME Developer's Library version 2.3 describes the S60 3rd Edition FP 2 and Series 40 5th Edition FP 1 implementations of the Java technology and API specifications. The new version of the library includes several minor updates on icon support, pre-deployment specifications and UID attribute usage. See the Change History section of the library for more details. 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.3 (Stand-alone)
Java ME Developer's Library version 2.3 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 that provides you with a search function. Extract the .zip file to any folder on your computer and click eclipse.exe to start the application.

Java™ ME Developer's Library v2.3 (Eclipse plug-in)
Java ME Developer's Library version 2.3 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.

Python for the S60 Platform eLearning
Learn about Python, the open source programming language optimized for rapid application prototyping. It is an object-oriented scripting language that is easy to learn and use and supported on many platforms. This module gives students an idea of where and how the language can be used, and show how to write Python programs that run on the S60 platform. The module assumes some familiarity with object-oriented programming languages.

S60 Platform: Application Testing
The testing section of the C++ Developer's Library discusses unit testing from a theoretical point of view and provides descriptions of strategies and techniques that are important when developing unit tests. The section also provides instructions and example code on how to perform unit tests on the S60 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: 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.

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.

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

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.

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

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




