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.

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

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.

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.

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.

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

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.

Designing Applications for S60 5th Edition
The Designing Applications for S60 5th Edition Devices section of the S60 5th Edition C++ Developer's Library describes what needs to be taken into account when developing applications for devices with a touch screen, tactile feedback, and sensors.

Standard S60 UI Components
This Standard S60 UI Components section of the Design and User Experience Library provides an extensive description of the appearance of the most useful S60 UI components. The section shows with the help of several examples how flexibly the UI components can be used in any application UI.

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.

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

S60 Web Runtime and WRT Widgets
This webinar gives you an overview of S60 Web Runtime and WRT Widgets. In addition, an introduction to the Widget development for S60 (for example packaging and deployment) of Widgets is included to this webinar.

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

S60 UI
S60 UI section in the C++ Developer's Library explains how application UIs work in the Symbian OS, and the connections between code and UI appearance/functionality.

S60 UI & Usability eLearning
This module covers the basic UI principles for mobile device development before moving on to introduce the basic features of S60 and how they promote good usability.

S60 Scalable UI Guidelines eLearning
This module begins with an introduction the S60 Scalable UI, looking at the benefits it can bring to the developer. The module then moves on to look at some of the issues involved with developing a scalable application, from the design phase through the implementation and testing phases.

S60 3rd Edition FP2: UI Style Guide
Read this document to get an overview of the S60 user interface in S60 3rd Edition, Feature Pack 2 and to familiarize yourself with its essential parts. The document can be used as an introduction to the style or as reference material but it also provides background material to help user interface designers make decisions about their products.

S60 UI Style Guide v1.3
Read this document to get an overview of the S60 user interface and to familiarize yourself with its essential parts. The updated document describes the new features introduced in S60 3rd Edition and S60 3rd Edition, Feature Pack 1, but it is also valid for earlier S60 platform releases. The document can be used as an introduction to the style or as reference material but it also provides background material to help user interface designers make decisions about their products.

Open C: SMS Crypto Example (with Python UI) v1.1
This Open C code example demonstrates usage of Python for S60 to provide a GUI for functionality implemented in standard C code. The use case of the example is encrypting/decrypting and sending/receiving of SMS messages. The example contains a simple C library for encryption that is ported to Symbian using Open C and called from the GUI. The package also contains a version with Symbian C++ GUI. The comparison and architectures of the Python and Symbian C++ implementations are provided in the Implementation Notes document available in the example package. Version 1.1 of the package includes updates to the document only.

S60 Platform: Custom UI and Screen Rotation Example
Use this C++ example application to learn the key functionalities of the screen rotation, custom component handling, status pane handling, and picture scaling on the S60 UI layer. Main classes CAknViewAppUi, CAknView, CCoeControl.

S60 List Controls eLearning
This eLearning module covers the various types of lists available in S60 and then goes into further detail concerning standard layouts.

S60 UI Controls eLearning
This module introduces what a S60 UI control is and how key events are handled in S60.

S60 UI Architecture eLearning
This module gives a brief overview of the three kinds of application architectures that are possible when writing an S60 application. The various classes that are associated with the particular architecture are described, as well as the relative advantage and disadvantages of the architecture when writing an S60 application. The module then moves on to describe the S60 UI layout in terms of the various windows and panes that are supported.

S60 Platform: Implementing Settings Screens v2.0
This document describes how settings screens are created for S60 C++ applications. Settings screens enable a user to view and manipulate application settings. They are usually implemented with setting item lists. When the user selects a setting item, the item can be edited either directly or via a setting page. The document discusses the basic construction and resource structure of settings screens, including setting item lists, setting items, and setting pages. Most of the available setting pages as well as pop-up fields and pop-up lists are also described. The document refers to the S60 Platform: Setting Screens Example that is published at www.forum.nokia.com. Note that settings are also discussed in the S60 Platform: Avkon UI Resources document package.

S60 UI Specification Guideline
This document is a practical guideline that explains how to create a good user interface (UI) specification for any application designed for the S60 platform. The document describes the purpose of the UI specification and the process needed for its creation. The S60 UI Specification Template published with this document can be used to plan UI specifications for S60 applications.

S60 Platform: Scalable Screen-Drawing How-To
This document describes how to develop C++ applications with custom graphics that scale to multiple display resolutions in portrait and landscape orientations supported by the S60 platform (from S60 2nd Edition, Feature Pack 3 onwards). Direct screen access, bitmaps, scalable vector graphics, and other drawing methods are compared and related APIs are presented. The document includes code snippets from S60 Platform: Scalable Screen-Drawing Example. This document is targeted especially at games and multimedia developers who prefer developing a custom UI instead of using the automatically scaling UI, such as S60 Avkon components.