Programming for the Series 60 Platform and Symbian OS

Author:Tino Pyssysalo
Publisher:Digia
ISBN:0-470-84948-7
Pages:521
Price:45€
Rating:8
Synopsis: This is the first book covering this platform, written by experts on Series 60. The Series 60 platform is a smartphone platform designed for Symbian OS. It supports mobile browsing, multimedia messaging (MMS) and content downloading, as well as a host of personal information management and telephony applications. "Programming for the Series 60 Platform and Symbian OS" integrates all necessary information for application development into one document, including software design, graphics and user interface programming, communications and Java programming on Series 60. It includes extensive code examples. The associated web site includes Series 60 SDK, code examples and more.
Table of contents: Foreword by Nokia xv
Foreword by Digia xvii
Authors xix
Acknowledgements xxiv
1 Introduction to the Series 60 Platform 1
1.1 Operating Systems for Smartphones 3
1.2 Symbian OS 6
1.2.1 Roots of Psion’s EPOC Operating System 6
1.2.2 Operating System Structure 7
1.2.3 Generic Technology 9
1.2.4 User Interface Styles 10
1.2.5 Application Development 11
1.3 Series 60: Smartphone Platform 12
1.4 Contents of this Book 14
1.4.1 Contents of Part 1 15
1.4.2 Contents of Part 2 16
1.4.3 Contents of Part 3 17
1.4.4 Contents of Part 4 18
Part 1 Software Engineering on the
Series 60 Platform 19
2 Overview of the Series 60 Platform 21
2.1 User Interface 21
2.1.1 User Interface Software and Components 24
2.1.2 User Interface Structure 26
2.2 Communications Support 27
2.2.1 Communications Technologies 27
2.2.2 Messaging 28
2.2.3 Browsing 31
2.2.4 Example of Using Communications
Technologies in the Delivery of
Multimedia Messages 31
2.3 Applications 33
2.4 Summary 33
3 Design Patterns for Application Development 35
3.1 Design Patterns in Software Development 35
3.1.1 Design Pattern Categorization 37
3.2 Design Patterns in Symbian OS 37
3.2.1 Model–View–Controller Pattern 38
3.2.2 Adapter Pattern 41
3.2.3 Observer Pattern 42
3.2.4 State Pattern 43
3.2.5 Programming Idioms 44
3.3 Design of the Rock–Paper–Scissors Game 45
3.3.1 Requirements Gathering 45
3.3.2 Analysis 47
3.3.3 Design 47
3.4 Summary 50
4 Software Development on the Series 60
Platform 51
4.1 Nokia Series 60 Platform Tools 52
4.1.1 Software Development Kits 52
4.1.2 AIF Builder 54
4.1.3 Application Wizard 54
4.1.4 Build Tools 55
4.1.5 Emulator 60
4.1.6 Sisar 60
4.2 Application Deployment 60
4.2.1 Package File Format 62
4.3 Worldwide Localization Support 65
4.4 Symbian Community and Development Support 67
4.4.1 Licensee Resources 68
4.4.2 Symbian Partner Programs 68
4.4.3 Developer Resources 69
4.4.4 Technology, Industry, and Training Events 69
4.4.5 Development Material 69
4.5 Summary 70
5 Platform Architecture 71
5.1 System Structure 71
5.1.1 Processes and Threads 78
5.2 EUser: Services for Applications 79
5.2.1 Memory Management 80
5.2.2 Exceptions 83
5.2.3 Descriptors 84
5.2.4 Multi-tasking with Active Objects 87
5.2.5 Client–Server Framework 89
5.3 Rock–Paper–Scissors Engine Functionality 90
5.4 Summary 92
6 User-centered Design for Series 60
Applications 93
6.1 User-centered Design Process 94
6.1.1 Iterative Development 94
6.1.2 Multi-disciplinary Teamwork 94
6.1.3 User Experience Skills in Organization 95
6.2 Understanding End-user Needs 96
6.2.1 Observing People in a Mobile Environment 97
6.2.2 Analyzing User-needs Data 98
6.3 Concept Design Workshops 99
6.3.1 Brainstorming Product Ideas 100
6.3.2 Storyboarding 101
6.3.3 Functional Specification: User
Environment Design 101
6.3.4 Paper Prototyping with End-user Evaluation 102
6.4 Interaction Design for Smartphones 105
6.4.1 Challenges in Smartphone Interaction
Design 105
6.4.2 Using Series 60 User Interface Style 108
6.4.3 Application Design for Series 60 109
6.5 Writing the User Interface Specification 113
6.5.1 Who Needs the User Interface Specification? 113
6.5.2 Who Can Write the User Interface
Specification? 114
6.5.3 Characteristics of a Good User Interface
Specification 115
6.5.4 Lifecycle of a Specification:
From Concept to User Interface Specification 115
6.5.5 Early Draft of the User Interface Specification 116
6.5.6 From Structure to Details 116
6.5.7 Maintaining the User Interface
Specification 117
6.5.8 User Interface Elements in Series 60
Platform 118
6.6 Usability Verification 121
6.6.1 Setting Usability Requirements 121
6.6.2 Verifying Usability 123
6.6.3 Paper Prototyping or User Interface
Simulation Tests 129
6.6.4 Lead Adapter Test 129
6.7 Summary 130
7 Testing Software 131
7.1 Validation and Verification in Testing 132
7.1.1 Planning and Designing Tests 133
7.1.2 Entry and Exit Criteria 135
7.1.3 Failure Corrections 135
7.2 Sources of Failures 136
7.2.1 Architectural Problems 136
7.2.2 Boundary Values 136
7.2.3 Combinations 137
7.2.4 Memory Management 138
7.2.5 Recovery Functions and Fault
Tolerance 139
7.3 Testing and Debugging Tools 140
7.3.1 Test Automation 141
7.3.2 Capture and Playback 142
7.3.3 Comparison 142
7.3.4 Debugger 142
7.3.5 Debug Output 143
7.3.6 Test Applications 143
7.3.7 Console Programs 144
7.4 Unit Testing 144
7.4.1 Unit Testing Framework 146
7.4.2 Macros 147
7.4.3 Test Suite 147
7.4.4 Executable Test Cases 149
7.4.5 Test Execution Results 151
7.4.6 Summary of the Unit Testing 153
7.5 Application Tester 154
7.5.1 DLL Command 155
7.5.2 Scripting Language 156
7.5.3 Summary of Digia AppTest 160
7.6 Summary 161
Part 2 Graphics, Audio, and User
Interfaces 163
8 Application Framework 165
8.1 User Interface Architecture 165
8.1.1 Uikon Application Classes 168
8.1.2 Avkon Application Classes 173
8.2 Launching an Application 179
8.3 Implementation of the User Interface
of the Rock–Paper–Scissors Game 180
8.3.1 Creating the User Interface 180
8.3.2 Graphics Drawing and Event Handling 189
8.4 Summary 193
9 Standard Panes and Application Windows 194
9.1 The Status Pane and Its Subcontrols 194
9.1.1 Title Pane 196
9.1.2 Context Pane 197
9.1.3 Navigation Pane 198
9.1.4 Signal Pane 203
9.1.5 Battery and Universal Indicator Panes 204
9.1.6 Full-screen Mode 205
9.1.7 Custom Control 206
9.2 Control Pane 206
9.2.1 Softkey Labels 206
9.2.2 Scroll Indicator 207
9.3 Main Pane 209
9.4 Summary 209
10 Lists and List Types 212
10.1 List Architecture 212
10.2 List Types 214
10.2.1 Menu List 214
10.2.2 Selection List 214
10.2.3 Markable List 214
10.2.4 Multiselection List 215
10.2.5 Setting List 215
10.2.6 List Layouts 216
10.3 Use of Lists 217
10.3.1 Creating Lists Manually 222
10.3.2 Creating a List from the Resource File 224
10.3.3 Use of Lists Inside Dialogs 225
10.3.4 Use of Icons 227
10.3.5 Popup Menu Example 228
10.3.6 Grids 230
10.3.7 List with One’s Own Model 236
10.4 Summary 241
11 Other User Interface Components 239
11.1 Dialogs 239
11.2 Forms 241
11.3 Editors 242
11.3.1 Editor Cases 242
11.3.2 Numeric Keymap 243
11.3.3 Input Modes 244
11.3.4 Special Character Table 244
11.3.5 Flags 244
11.4 Notifications 245
11.4.1 Confirmation Notes 245
11.4.2 Information Notes 247
11.4.3 Warning Notes 248
11.4.4 Error Notes 248
11.4.5 Permanent Notes 249
11.4.6 Wait and Progress Notes 250
11.4.7 Soft Notifications 254
11.5 Queries 254
11.5.1 Local Queries 255
11.5.2 Global Queries 264
11.6 Setting Views 265
11.6.1 Setting Item List 265
11.6.2 Setting Items 267
11.6.3 Setting Pages 267
11.6.4 Custom Setting Page 271
11.7 Summary 271
12 View Architecture 272
12.1 View Deployment 272
12.1.1 Views and User Interface Controls 272
12.1.2 Implementing View Transitions 274
12.2 View Runtime Behavior 277
12.2.1 Activation and Deactivation 277
12.2.2 Exception Handling 277
12.3 Summary 278
13 Audio 279
13.1 Playing 279
13.1.1 Priorities 281
13.1.2 Sinewave Tones 281
13.1.3 Audio Clips 283
13.1.4 Streaming 285
13.2 Recording 288
13.3 Summary 291
14 Customizing the Series 60 Platform 292
14.1 User Interface Customization 294
14.1.1 Customizing the Look and Feel 295
14.1.2 Application Shell 296
14.1.3 Status Pane 297
14.1.4 Notifiers 299
14.2 Base Porting 300
14.3 Porting Applications to the Series 60 Platform 302
14.3.1 Functional Changes 303
14.3.2 Changes in the User Interface 304
14.3.3 Changes to Communications 306
14.4 Summary 306
Part 3 Communications and Networking 307
15 Communications Architecture 309
15.1 The Building Blocks of the Communications
Architecture 309
15.1.1 Communications Servers 310
15.1.2 Communications Modules 313
15.1.3 Communications Database 319
15.1.4 Communications Pattern 319
15.2 Supported Communications Technologies 321
15.2.1 Protocols and the Open System
Interconnection Model 322
15.2.2 RS-232 323
15.2.3 IrDA 324
15.2.4 mRouter 326
15.2.5 SyncML 327
15.2.6 TCP/IP 327
15.2.7 Dial-up Networking 327
15.2.8 Bluetooth 329
15.2.9 GPRS 331
15.2.10 HTTP 331
15.2.11 WAP 332
15.2.12 Summary of Series 60 Platform
Communication Technologies 333
15.2.13 Using Real Devices with the Software
Development Kit 333
15.3 Communications Security 334
15.3.1 Confidentiality 334
15.3.2 Integrity 335
15.3.3 Availability 335
15.4 Protection Mechanisms 335
15.4.1 Protocol Security 336
15.4.2 Authentication 337
15.4.3 Data Encryption 338
15.5 Other Security Issues in Symbian OS 340
15.6 Summary 341
16 Communications Application Programming
Interface 342
16.1 Communications Infrastructure 343
16.2 Serial Communications Server 343
16.3 Socket Server 349
16.3.1 Support Classes 350
16.3.2 Communications Pattern for Sockets 351
16.3.3 NifMan 351
16.3.4 TCP/IP Sockets 351
16.3.5 IrDA Sockets 354
16.3.6 Bluetooth Sockets 356
16.3.7 WAP 371
16.4 ETel Server 371
16.4.1 Fax 373
16.5 Summary 374
17 Messaging 375
17.1 Messaging Architecture 375
17.2 E-mail 382
17.2.1 Sending E-mail 383
17.2.2 Receiving E-mail 385
17.3 SMS 386
17.3.1 Creating and Sending Short Messages 387
17.3.2 Receiving Short Messages 390
17.4 MMS 391
17.4.1 MMS Protocol Data Unit Structure 392
17.5 Smart Messaging 395
17.5.1 Bio Information File 396
17.5.2 Defining the Message Data Format 397
17.5.3 Implementing the SMS Viewer Plug-in
Component 398
17.6 SendUI 401
17.7 Summary 405
18 Connectivity 406
18.1 Symbian Connect 407
18.1.1 Symbian Connect Features 407
18.1.2 Connectivity Architecture 410
18.2 Synchronization 415
18.2.1 Business Cards, Calendar Entries,
and Mail 416
18.2.2 Synchronization Engine 417
18.3 SyncML 418
18.3.1 Device Management 421
18.4 Summary 422
Part 4 Programming in Java 423
19 Programming in Java for Smartphones 425
19.1 Java 2 Micro Edition 425
19.2 Connected Limited Device Configuration 428
19.2.1 Requirements 428
19.2.2 Security 428
19.2.3 K Virtual Machine 430
19.2.4 Packages Overview 430
19.3 Mobile Information Device Profile 435
19.3.1 Requirements 439
19.3.2 Package Overview 439
19.3.3 Midlets 441
19.3.4 Midlet Suites 444
19.4 Summary 447
20 Midlet User Interface Framework 449
20.1 Defining the Midlet User Interface 449
20.1.1 Example Application 451
20.1.2 Display 451
20.1.3 Displayable 453
20.1.4 Commands 454
20.1.5 Canvas 456
20.1.6 Screen 457
20.1.7 Graphics 458
20.1.8 Form 460
20.1.9 Image 463
20.1.10 Ticker 464
20.1.11 TextBox 464
20.1.12 Choice 465
20.1.13 Alert 469
20.1.14 Font 470
20.1.15 Item 473
20.1.16 DateField 473
20.1.17 Gauge 473
20.1.18 ImageItem 474
20.1.19 StringItem 475
20.1.20 TextField 475
20.2 Nokia User Interface Classes 476
20.2.1 Package Overview 477
20.2.2 Classes and Interfaces 477
20.3 Networked Midlets 485
20.3.1 Basics 485
20.3.2 Creating a Connection 485
20.3.3 HttpConnection 485
20.4 Over-the-Air Provisioning 487
20.4.1 Over-the-Air Provisioning in the
Series 60 Platform 489
20.5 Summary 489
Appendix: An example of a User Interface
Specification 490
1 Example of How to Specify the Screen Layout 490
2 Example of How to Specify the Options Menus 490
3 Example of How to Specify the Notes and Queries 492
4 Example on How to Specify the Keypad 492
5 Example on a Use Case 492
Glossary 494
References 503
Index 507
Review: This is the first book on series 60 from independent publisher (not symbian) and talk about series 60 1st edition, but it is still good to understand symbian idioma.
After introdution to smarphone technology, part 1 present in abstract all platform peculiarities, Symbian idioms, development tool by nokia. Part 2 presents more practical use of some class of frameworks, even if it recalls nokia documentation. Part 1 is a must for understanding part 2.
Part 3 talks about communication framework (still part 1 is a must)
Part 4 talks about java programming with j2me on symbian platform