0% found this document useful (0 votes)
38 views4 pages

WJW

Symbian OS applications are object-oriented and employ the Model-view-controller (MVC) design pattern. A CodeWarrior development tool for The Symbian OS includes support for the UI for quartz.

Uploaded by

Neo Red
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views4 pages

WJW

Symbian OS applications are object-oriented and employ the Model-view-controller (MVC) design pattern. A CodeWarrior development tool for The Symbian OS includes support for the UI for quartz.

Uploaded by

Neo Red
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

A Brief Introduction to the CodeWarrior Development Tools for Symbian OS

By C. Enrique Ortiz

Introduction
The CodeWarrior IDE provides the same familiar development environment for multiple target platforms. This is true for all CodeWarrior wireless and PDA development tools, including those for the Symbian OS.

Symbian OS ApplicationsElements and Structure


Symbian OS applications are object-oriented and employ the Model-View-Controller (MVC) design pattern. An MVC application separates its user interface from its computation logic. A Symbian OS UIQ application consists of C++ header and source files that together make up the application (see Figure-1a).

Application Entry Point

Start

Application

Application Class

Document Class

Creates has

Document

Data Model

User Interface Class

View(s)

Creates User Interactions User Interface with command handler has

View(s)

Resource File

External resources, such as databases

User

Figure 1a: Elements of a UIQ Application Description of program classes: Applications Entry Point

Figure 1b: Structure of a UIQ Application

Application ClassCreates the applications document and uniquely identifies the application. Document ClassEncapsulates application data and provides methods for manipulating this data and for closing the application. User Interface ClassOwns all UI controls and handles UI commands. View ClassDisplays the documents data and manages the UI and user interactions.

The Symbian OS is an event-based operating system. Symbian OS UIQ applications communicate with the OS by means of event handlers (see Figure 1b).

The User Interface


CodeWarrior Development Tools for Symbian, v7.0 includes support for the UI for Quartz, a GUI framework for handheld devices that provides a standard look-and-feel across all Symbian OS, UIQ-based devices. The UIQ targets a specific family of devices: PDAs and smart phones with screen sizes of 240*320 pixels (1/4 VGA) or 208*320 pixels. Figure 3a shows the UIQ screen layout. While the Symbian OS supports concurrent applications, UIQ allows just one application to control the screen at a time. This makes UIQ devices simple to use. To accomplish this simplicity, UIQ applications use list (summary) views and details views. Typically, a UIQ application first displays a list view that provides a graphical or textual item summary (see Figure-3b). Selecting a summary item displays that items details view (see Figure 3c). Using tabs, an application can provide many different details views.
Application Picker Menu Bar

Application Space

Status Bar

Figure 3a: Application Screen Layout

Figure 3b: List View

Figure 3c: Details View

A typical UIQ application has a menu bar, folders, dialogs, a button bar containing one or more controls, and/or one or more tabs. Button bars and tabs let users switch between pages. UIQ user interface objects are defined in the applications resource file. Currently, there is no WYSIWYG GUI builder for UIQ. Consequently, you must create your resource files manually.

Creating a Symbian OS Project


Using CodeWarrior Development Tools for Symbian OS, you can create a project file using the IDEs New Project dialog box, or you can import an existing Symbian OS SDK project (see Figure 4).

Figure 4: Symbian OS Project Creation Menu Options Selecting File > New from the menu bar displays the New Project dialog box. Selecting File > Import Project From. mmp File displays the import selection dialog boxes. The New Project dialog box lets you select a specific project type (such as, Empty Project) or use the Symbian Stationery Wizard to create your project. Stationery are templates for different project types. The import selection dialog boxes let you select the desired Symbian OS SDK and the .MPP file to import. The CodeWarrior IDE automatically generates a .resource XML file that describes the Symbian OS resource files and bitmaps.

Building and Running Your Application


The CodeWarrior IDE provides a consistent user interface for multiple target platforms. Figure 5 shows the CodeWarrior project window. This window provides toolbar access to settings and build options.
Target Target Make Settings Debug Run

Figure 5: Project Window

Figure 6: Target Settings Window

To build and run your application, select a build target, such as the UIQ emulator for Windows

(WINSCW), and choose Project > Run. You can select a release or debug version of any build target. For debug targets, the IDE launches the UIQ emulator along with debugger (see Figure 7). Press Alt-F7 to display a window in which you can configure the linker, access paths, and other Symbian OS settings (see Figure 6).

The CodeWarrior Debugger Figure 7: The Debugger and Emulator Screens

The UIQ Emulator

The debugger lets you set breakpoints, view variables, step into/over functions, and more. Further, the debugger gives you complete control of the execution of your application threads.

Summary
CodeWarrior for Symbian OS enhances your development experience by providing a full-featured integrated development environment. This environment includes project wizards, Symbian build components, a source code editor, a debugger, easy platform re-targeting, and integrated emulators.

You might also like