Symbian Contacts
Agenda
n Symbian OS and Subsystems
N series 60 platageform
N Contacts Model
N Phone Book Engine
N Series 60 Application UI
n example application
Symbian Shakeholders
Symbian licensees
Symbian OS
N EPOC Platform
n electronic piece of cheese
N MAny Key Features That Have A Significant Impact On Mobile Application Development.
n highly object oriented
n pre-esptive multitasking
N Event Driven Programing Interface
n protected memory
Symbian OS (cont.)
n extensive use of user mode servers
n extensive use of plug-in Architectures
N Highly Efficient Power Mgmt Sub-System
n more one an OS
N Pim and Communication Applications Is Included with Symbian OS
N Provides Application Programming Framework
Symbian OS (cont.)
n developer resources
N forum nokia
n http://www.forum.nokia.com/
N Symbian Developer Network
n http://www.symbian.com/developer/
Symbian Subsystems
Symbian subsystems (cont.)
N Application Engines
N Provides Access to the Application Data of The Core Applications.
N Application Services
n Provides a Range of Utility Services To Applications (from logging and system information, to vcard and vcalendar handling).
N Application Protocols
N Contains Components for Using The Connectivity Standard, Syncml, And The Web Http Protocol.
N Application Framework
N Defines The Application Structure and ITS Basic User Interface Handling.
Symbian Ui Reference Platforms
N series 60
N Series 80
N series 90
N uiq
N others
Series 60 Platform
N for one-hand operated smart phone.
N series 60 sdk provided by nokia.
N Technical Requirements of Series 60 SDK: N Windows NT / 2000 / XP Environment
N 500 MB of Free Disk Space or more
N Microsoft Visual C 6.0 or Visual C .NET
Application Architecture
N Application Engine
N Application Model
N Deal with the algorithms and data structures needed to represent the application's data.
N Application UI
n app
N DEAL WITH The Application Data and The Overall Behavior of the Application.
Contacts Model
n a core feature of symbian os.
N purpose
N Store, Manipulate, And Retrieve Contact Data.
N Make It StraightForward for New Applications to Access Contacts Data.
Contacts Model Architecture
N Contacts Database
N a Contacts Database Contains a Number of Contact Items.
n One Default Database Provides Contact Data To The Contacts Application Itself (Contacts.cdb).
N Contact Item
N Each Contact Item Contains a Number of Contact Fields.
N Contact Field
N Each Field Has Storage for a Single Object (Text, Binary, OR a Date / Time Value).
Contacts Database
n ccontactdatabase
N Handle All Interaction with a contact data.
n mcontactdbobserver
N Be Notified of Database Changes Made by Other Clients.
n ccontactitemviewdefef
N Indicate Which Field Data Should Be Retrieved.
Contact Item
n ccontactitem
n Abstract base class.
N ccontactcard
N Contact Cards.
n ccontactCardTemplate
N Contact Templates, Which Set The Initial Fields for Other Contact Items.
n ccontactgroup
N Contact Groups, Which Hold A Set of Associated Contact Item IDs.
N ccontactownloadcard
N Own Card, Which Is A Contact Card That Contains Information About The Device's Owner.Contact Field
n ccontactitemfield: Contact Field Interface.
Each Field HAS:
N a content type: ccontenttype.
n One Uid Identifies The Field's Type.
N Another Optional Uid Identifies a Vcard Property to Which The Field Type Maps.
n a Storage Type: TSTORAGETYPE.
N Identify The Type of Data (Text, Binary, Contact ID, DATA / TIME) Stored in A Contact Item Field.
Contacts API
N Reference
n Symbian OS: Using Contacts APIS
n Symbian Developer Library: API Reference
Contacts API (CONT ')
n Contacts Database Management
N Open, Close, Get / Set Drive / Path / Name, Compress, Recover
N Accessing Contact Item
n address a contact item
n
Reading
A Contact Item
n view definitions
N searching the database
n Iterating Through Contacts
n createings Using Filters
N Finding Contact Items
N Notification of changes
N vcards
n import, export
Phone Book Engine
N The Series 60 Platform Alternative to the Contacts Model.
N more suited to the needs of the series 60 platage.
Phone book API
N Reference
N Series 60 Developer Platform 1.0 / 2.0: Using The Phone Book Engine
N series 60 API Reference
Phone Book API (CONT ')
N Phone Book Database Management
N Accessing Phone Book Item
N Opening a Phone Book Item
N CREATING New Phone Book Item
N searching the phone book
n Iterating Through Contacts
n phone number matching
N Finding Text Strings in Contacts
N speted DiRing
N change notification
N vCards and Compact Business Cards
Phone Book API (CONT ')
N Phone Book Dialogsseries 60 Application UI
N Series 60 Ui Layer (Avkon)
N provides a set of ui company.
N Dialog: Customizable Containers
N Query: for Simple Data (Text And Numeric) Entries
N form: for Containing Controls
N popup notes: for flashing up important information
N ListBox and Grid: for Displaying Data
N options menu
n provide an application framework.
Application Framework
N Reference
N Series 60 Application Framework Handbook
Application Framework (cont ')
N Application
N Operate as a startup Object and define the application's profment.
N CREATE The Document.
N document
N Store The Applications Persistent State.
N Launch the appui.
n appui
..............
N IT CAN OWN MANY Views. It is Also responsible for switching between views.
N view
N Display Data on The Screen
N be notified of updates by an observer mechanism
N Pass User Commands Back to the appui.
Model-View-Controller (MVC) Paradigm
N model
n encapsulates the application state
n exposes the application functionality
n notifies the view of change
N Responds to State Queries (from the view)
N view
n renders the model
n receiver Updates from the model
N Sends User Input to the Controller
N Controller (AppUI)
N defines application behavior
n Maps User Actions to Model Updates
N selects views for response
Example Application
N PhoneBkex
N Build and Run
N Reference
N Symbian OS: Getting Started With C Application Developmentn Introduction To Series 60 Applications for C Developers
N ...
Search Phone Book
n Iterating Through Contacts Using CPBKContactiter
N Finding Text Strings in Contacts
n cpbkcontactengine :: findlc ()
n cpbkcontactengine :: findasyncl ()
N Observer to Receive Updates About The Search Progress
n MidleFindObserver :: idlefindcallback ()
N Every Sixteiffh Item
Q & A