Você está na página 1de 19

P L A T F O R M

Developer Training Program

60
Series 60 C++ Development
Introduction
Version 1 - (Course #05300)

S E R I E S
March 29, 2005
Developer Training Program Series 60 C++ Development Introduction | 2

Legal Notice

Copyright © 2005 Nokia Corporation. All rights reserved.

Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. Java
and all Java-based marks are trademarks or registered trademarks of Sun Microsystems,
Inc. Other product and company names mentioned herein may be trademarks or trade
names of their respective owners.

Disclaimer

The information in this document is provided “as is,” with no warranties whatsoever,
including any warranty of merchantability, fitness for any particular purpose, or any warranty
otherwise arising out of any proposal, specification, or sample. Furthermore, information
provided in this document is preliminary, and may be changed substantially prior to final
release. This document is provided for informational purposes only.

Nokia Corporation disclaims all liability, including liability for infringement of any proprietary
rights, relating to implementation of information presented in this document. Nokia
Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this specification at any time, without
notice.

License

A license is hereby granted to download and print a copy of this specification for personal
use only. No other license to any other intellectual property rights is granted herein.

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 3

Contents

1. Introduction ......................................................................................................... 5
2. Audience .............................................................................................................. 6
3. At course completion.......................................................................................... 7
4. Pre-requisites ...................................................................................................... 8
5. Course Materials ................................................................................................. 9
6. Course Outline................................................................................................... 10
6.1 Module 05301: Series 60 ..............................................................................................10
6.2 Module 05302: UI Controls ...........................................................................................10
6.3 Module 05303: Graphics ...............................................................................................12
6.4 Module 05304: Series 60 UI Overview .........................................................................13
6.5 Module 05305: Deployment ..........................................................................................14
6.6 Module 05306: Data Persistence..................................................................................15
6.7 Module 05307: Communications ..................................................................................17
6.8 Module 05308: Multi-Media Framework........................................................................17
6.9 Module 05309: Symbian Signed ...................................................................................18

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 4

Change History

March 29, 2005 Version 1.0 Initial document release

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 5

1. Introduction
The goal of this course is to provide students with knowledge and skills they need to
develop Series 60 applications using C++ for the Symbian OS. The course focuses on
specifics of the Series 60 platform, rather than the details of the Symbian OS itself.

With the Developer Platform for Series 60, Nokia has created a unique opportunity for
developers, manufacturers and operators to reap the benefits of the world's first truly open
smart phone platform. Samsung, Siemens, Panasonic, LG, Lenovo and Sendo join Nokia as
Series 60 licensees, bringing together some of the biggest names in mobile phones behind
a single software implementation — a first for the industry.

The Symbian OS allows for simple, object-oriented, stable code for smart-phones to be
written using the C++ language.

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 6

2. Audience
This course is intended for experienced developers who already have at least 6 months of
professional experience in C++. These developers will be capable of developing business,
gaming, entertainment, and media solutions. Developers should already either have
attended the Symbian Basics training course (04300) or have at least 6 months Symbian OS
programming experience.

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 7

3. At course completion
At the end of the course, students will be able to:

ƒ Install the Series 60 SDK and run the emulator

ƒ Display a query dialog to get text from the user

ƒ Use the Series 60 Framework to design, create, and implement menus, toolbars,
status bars, and dialog boxes in an application

ƒ Deploy an application to a Series 60 device

ƒ Write simple and complex graphics routines in applications

ƒ Store data in files and create, query and add data to databases

ƒ Communicate using TCP/IP, Infrared, Bluetooth protocols

ƒ Understand the criteria involved in gaining Symbian Signed approval

ƒ List developer services available from Forum Nokia


(http://www.forum.nokia.com)

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 8

4. Pre-requisites
Before attending this course, students must have:

ƒ Experience with programming in C++, including of an understanding of the C++


coding constructs common with C

ƒ Have attended the Symbian Basics training course (04300) or have 6 months
Symbian OS experience

ƒ An understanding of the UI/Usability concepts associated with Nokia’s Series 60


designations

ƒ An understanding of Object Oriented Principles, such as encapsulation,


overloading, polymorphism and inheritance, additionally, concepts such as
objects, methods, and properties

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 9

5. Course Materials
The student kit includes a comprehensive workbook, student CDs and other necessary
documentation for this class.

The following software will be provided for use in the classroom:

ƒ Series 60 SDK

ƒ Perl

ƒ Java Runtime Environment

ƒ IDE (either Visual Studio or CodeWarrior)

ƒ Source code for:

o Lab starting points

o Lab solutions

o Samples

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 10

6. Course Outline

6.1 Module 05301: Series 60

The following topics are covered in this module:

Lessons

ƒ Who is Series 60 ?

o Series 60 UI

o Series 60 licensees

ƒ Why should I develop using Series 60 ?

ƒ What version of Series 60 should I use?

o Series 60 platform history

ƒ Which devices support Series 60 ?

ƒ How do I start developing for Series 60 ?


Lab 05301.1

ƒ Install Series 60 emulator

ƒ Familiarization with Series 60 emulator

After completing this module, the student will:

ƒ Be able to name the Series 60 licensees, and current and planned devices

ƒ Know the history of Series 60 platform

ƒ Be able to select the version of Series 60 that suits them

ƒ Know what the Series 60 Developer Platform is

ƒ Know how to start developing for the Series 60 platform

6.2 Module 05302: UI Controls

The following topics are covered in this module:

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 11

Lessons

ƒ Overview

ƒ The Control Stack

o Registration

o Priorities

o Key Event flow

ƒ Predefined UI Controls Examples

o Simple Vertical List

o Text Query

ƒ Custom Controls

o Drawing

o Handling Key Events

Lab 05302.1 (Visual Studio) Creating a List Box

ƒ Constructing a list box from resources

ƒ Re-routing key events so list box item scrolling can be performed

ƒ Deleting items from a list box

ƒ Using a text query dialog to add items to the list box


Lab 05302.2 (CodeWarrior) Creating a List Box

ƒ Constructing a list box from resources

ƒ Re-routing key events so list box item scrolling can be performed

ƒ Deleting items from a list box

ƒ Using a text query dialog to add items to the list box

After completing this module, the student will:

ƒ Know which class must be derived from in order to draw and handle key events

ƒ Be able to register a control with the Control Stack

ƒ Understand how to handle Key Events

ƒ Be able to perform custom drawing

ƒ Know how to use predefined UI controls such as

o Listboxes

o Text Query Dialogs

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 12

6.3 Module 05303: Graphics

The following topics are covered in this module:

Lessons

ƒ Graphics devices and contexts

ƒ Bitmaps

ƒ Drawing Font

ƒ Screen back buffer usage

ƒ Anti-aliasing support

ƒ Bitmap transformation

ƒ Accelerator support for graphics operations

Lab 05303.1 (Visual Studio) Drawing graphics and text to the screen

ƒ Write a Series 60 application that creates a bouncing ball

ƒ Collision detection is only at the edges of the screen.

ƒ Use the lower part of the screen to display the number of bounces

ƒ Key input should change speed and direction of the ball

ƒ A back buffer should be used to update the screen.

ƒ Use of a sprite array


Lab 05303.2 (CodeWarrior) Drawing graphics and text to the screen

ƒ Write a Series 60 application that creates a bouncing ball

ƒ Collision detection is only at the edges of the screen.

ƒ Use the lower part of the screen to display the number of bounces

ƒ Key input should change speed and direction of the ball

ƒ A back buffer should be used to update the screen.

ƒ Use of a sprite array

After completing this module, the student will be able to:

ƒ Output text to a bitmap

ƒ List and describe the standard Series 60 graphics objects

ƒ Output simple graphics objects, such as lines, rectangles and ellipses

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 13

ƒ Describe the various Series 60 mapping modes

ƒ Use the BitBlt functions to copy bitmaps

6.4 Module 05304: Series 60 UI Overview

The following topics are covered in this module:

Lessons

ƒ Types of view architecture

ƒ Dialogs

ƒ Pop-ups

ƒ Forms

ƒ Lists

ƒ Grid

ƒ Editors

ƒ Menu handling

ƒ Status Pane

Lab 05304.1 (Visual Studio) Building an expenses recording application

ƒ Use a settings list to show expense items such as date, amount etc

ƒ Use settings pages to edit individual pages

ƒ Use a double width list to show a summary of all expense items

ƒ Data held only in memory

Lab 5304.2 (CodeWarrior) Building an expenses recording application

ƒ Use a settings list to show expense items such as date, amount etc

ƒ Use settings pages to edit individual pages

ƒ Use a double width list to show a summary of all expense items

ƒ Data held only in memory

After completing this module, the student will be able to:

ƒ Select an appropriate view architecture for an application

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 14

ƒ Add menus, accelerator keys, status bar prompts, forms, grids, list boxes and
pop-ups to an application

ƒ Explain the routing of key command messages and events

ƒ Dynamically change the state of any UI element

ƒ Add additional panes and graphics to a status bar

ƒ Build additional graphics/UI screens and link them to form complex applications

6.5 Module 05305: Deployment

The following topics are covered in this module:

Lessons

ƒ File Structure of the Series 60 system

ƒ Important files

ƒ Installation scripts

ƒ Packaging applications for distribution

o Using UIDs for specific devices

ƒ Controlling the release of multiple versions of applications

ƒ Application installer

ƒ Versioning of the Series 60 OS among various devices (backwards


compatibility and cross device portability of code)

o Binary compatibility

o Series 60 version compatibility

ƒ Copyright protection (tying applications to specific IMEIs)

ƒ Summary of DRM issues

ƒ Deployment tools (how to deploy applications to multiple devices)

ƒ File Manager to examine the directory structure of the device

ƒ Personalization application to customize the device look and feel

Lab 05305.1 (Visual Studio) Deploying an application

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 15

Lessons

ƒ Analyze the dependencies of an application

ƒ Write an application installation script

ƒ Install and test the setup scripts and package

ƒ Add additional language support to allow users to install different language


versions

ƒ Write an application that checks for a specific IMEI number


Lab 05305.2 (CodeWarrior) Deploying an application

ƒ Analyze the dependencies of an application

ƒ Write an application installation script

ƒ Install and test the setup scripts and package

ƒ Add additional language support to allow users to install different language


versions

ƒ Write an application that checks for a specific IMEI number

After completing this module, the student will be able to:

ƒ Work with installation settings

ƒ Deploy an application

ƒ Understand the significance of UIDs for different devices

ƒ Understand copyright protection and DRM issues

ƒ Understand compatibility issues for different Series 60 versions and devices

ƒ Customize the devices look and feel using the Personalization app

6.6 Module 05306: Data Persistence

The following topics are covered in this module:

Lessons

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 16

Lessons

ƒ File Access

ƒ Streams and Stores

o File Stores

o Stream Networks

o Swizzles

o Stream Dictionaries

ƒ Database Access

o Creating a database

o Adding/removing data

o Searching for data

o Transactions

Lab 05306.1 (Visual Studio) Writing an application that stores data and show its
retrieval

ƒ Extend the UI lab (5312.1) to store the expense details in a database

ƒ Add functionality to perform and display simple queries

Lab 05306.2 (CodeWarrior) Writing an application that stores data and show its
retrieval

ƒ Extend the UI lab (5312.1) to store the expense details in a database

ƒ Add functionality to perform and display simple queries

After completing this module, the student will be able to:

ƒ Define how Series 60 supports persistent storage

ƒ Serialize objects to and from streams

ƒ Create/Delete/Modify files using the file handling classes

ƒ Find, modify, add, deleting records from databases

ƒ Constructing SQL queries on databases

ƒ Generating queries and displaying them in the UI

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 17

6.7 Module 05307: Communications

The following topics are covered in this module:

Lessons

ƒ Bluetooth implementation and access

ƒ Infrared serial communications

ƒ TCP/IP and sockets implementation in Series 60

o IPv6

o Secure sockets

ƒ WAP (browser capabilities, invoking browser from programs)

ƒ Telephony APIs

o GSM and GPRS

o Multimode packet APIs

o Third party telephony API

ƒ SyncML

Lab 05307.1 (Visual Studio)

ƒ Use the Telephony API to instantiate a call from a S60 application

ƒ Connect to a remote internet Time server using TCP/UDP sockets and


request information

Lab 05307.2 (CodeWarrior)

ƒ Use the Telephony API to instantiate a call from a S60 application

ƒ Connect to a remote internet Time server using TCP/UDP sockets and


request information

After completing this module, the student will be able to:

ƒ Describe the TCP/IP implementation on Series 60

ƒ Launch the WAP browser from an API to send and retrieve information from a
server

ƒ Construct applications that incorporate Bluetooth and/or serial connectivity

ƒ Initiate a telephone call from an API

6.8 Module 05308: Multi-Media Framework

The following topics are covered in this module:

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 18

Lessons

ƒ Multi-Media Framework

ƒ APIs for audio

o Audio playback

o Audio recording

o Audio configuration

o Audio streaming

ƒ APIs for video

o Video playback

o Video recording
Lab 05308.1 (Visual Studio) Write an application play sounds in different formats

ƒ Using MMF APIs play back tones

ƒ Playback WAV files

ƒ Record sound to Wav file

Lab 05308.2 (CodeWarrior) Write an application play sounds in different formats

ƒ Using MMF APIs play back tones

ƒ Playback WAV files

ƒ Record sound to Wav file

After completing this module, the student will:

ƒ Understand the capabilities of the Series 60 Multi-Media Framework

ƒ Be able to record and playback sound from within an application using the MMF
APIs

ƒ Be able to record and playback video from within an application using the MMF
APIs

6.9 Module 05309: Symbian Signed

The following topics are covered in this module:

Lessons

Version 1 - (Course #05300) | March 29, 2005


Developer Training Program Series 60 C++ Development Introduction | 19

Lessons

ƒ Background

ƒ Symbian Signed Process Overview

o Signing

o Verification

o Testing

ƒ Symbian Signed Test Criteria

o Application Launch

o General Usage

o Stress Testing

o Memory Usage

o Phone Functionality

o User Control

Lab 05309.1 (Visual Studio) Address Symbian Signed criteria in an application

ƒ Add functionality to an application to pass specific tests

Lab 05309.2 (CodeWarrior) Address Symbian Signed criteria in an application

ƒ Add functionality to an application to pass specific tests

After completing this module, the student will:

ƒ Know the advantages of the Symbian Signed program

ƒ Be able to submit an application to the Symbian Signed program

ƒ Understand the test criteria that a conforming application must satisfy.

Version 1 - (Course #05300) | March 29, 2005

Você também pode gostar