Building the Yellow Pages Application

Read the following chapters of the book, Developing Software for Symbian OS by Steve Babin. :

  1. Chapter 1: Smartphones and Symbian OS
  2. Chapter 2: Symbian OS Quick Start
  3. Chapter 4: Symbian OS Programming Basics
  4. Chapter 6: Strings, Buffers, and Data Collection (Important)
  5. Chapter 12: GUI Application Programming
This would require about 8-10 days.

In addition to this, we also referred to Nokia Forums, NewLC and the book, "Quick Recipes on Symbian OS Mastering C++ Smartphone Development" by Michael Aubert. (Section 4.1 : File Handling)

After reading the book we started off with a top-down design of the App (Use case analysis, class design, realization etc).

 Application Use Case Analysis

  1. User selects City from a list.
  2. User selects Category from a list.
  3. System presents the list of Companies and their phone numbers to the user.

Application Architecture

A Symbian GUI App contains 4 classes:

  • Application View: The root GUI control, this class implements the main window and acts as a container for the other application controls.

  • Application UI: This class instantiates the application view and handles the commands sent from the application’s GUI controls.

  • Application document: This class handles the non-GUI data aspects of the application – the application data. It also instantiates the application’s UI class.

  • Application: The main application class starts the application by instantiating and starting the document class. It also sets the application’s UID.

The application resource defines a significant part of how the application will appear and function. The resource file is a text file whose name ends in .rss, and is compiled into a binary form by the SDK’s resource compiler. This compiled version of the resource file is loaded onto the phone along with the application executable and is accessed during application execution.

For making the GUI components, we must first define the GUI components in the resource file. For our Yellow Pages, we first define a MenuBar. We defined a menubar with just one item, "Select City". It should then display a dialog with a form to select the city-

Selecting a City and saving then creates another form which provides options for selecting the category-

After that, the data is read from a file and the names of companies and their phone numbers are dispayed in a MessageQueryDialog.


The UI class handles the commands from these GUI resources, whereas the CYPagesForm & CYPagesForm1 handle the dialog forms defined in the resource as follows. CYPagesForm & CYpagesForm1 have methods like DynInitMenuPane which initializes the resource defined in the resource files using the resource id, and other methods to handle the forms.

Published 5 Jun 2011

I build mobile and web applications. Full Stack, Rails, React, Typescript, Kotlin, Swift
Pulkit Goyal on Twitter