Skip to main content

Symbian OS Explained: Effective C++ Programming for Smartphones



Symbian OS Explained: Effective C++ Programming for Smartphones

Jo Stichbury

ISBN: 978-0-470-02130-9 January 2005 392 Pages


This book explains the key features of Symbian OS and will help you to write effective C++ code. It focuses on aspects of good C++ style that apply particularly to Symbian OS.

21 items are used to target particular aspects of the operating system and provide a simple and straightforward exploration of coding fundamentals. Using example code and descriptions of best practice to deconstruct Symbian OS, the items guide you to what you should and should not do (and why), pointing out commonly-made mistakes along the way.

Technologies covered include:

  • client-server architecture
  • descriptors and dynamic containers
  • active objects, threads and processes
  • leaves, cleanup stack and 2-phase construction
  • thin templates, good API design, memory optimization, debug and test macros
  • the ECOM plug-in framework

Symbian OS Explained can be read cover-to-cover or dipped into as a reference that will improve your code style when programming with Symbian OS.


About This Book.

Author Biography.

Author’s Acknowledgments.

Symbian Press Acknowledgments.

1. Class name conventions on Symbian OS.

2. Leaves: Symbian OS Exceptions.

3. The Cleanup Stack.

4. Two-Phase Construction.

5. Descriptors: Symbian OS Strings.

6.  Good Descriptor Style.

7. Dynamic Arrays and Buffers.

8. Event-Driven Multitasking Using Active Objects.

9. Active Objects Under the Hood.

10. Symbian OS Threads and Processes.

11. The Client-Server Framework in Theory.

12. The Client-Server Framework in Practice.

13. Binary Types.

14. ECOM.

15. Panics.

16. Bug Detection Using ASSERTs.

17. Debug Macros and Test Classes.

18. Compatibility.

19. Thin Templates.

20. Expose a Comprehensive and Comprehensible API.

21. Good Code Style.

Appendix: Code Checklist.


Bibliography and Online Resources. 


Ecom Example Code
Hercules v7 Example Code
Hercules v9 Example Code