Developing Software for Symbian OS
Symbian has kindly sent me the latest Symbian Press/Wiley book for review - "Developing Software for Symbian OS" by Steve Babin.
This 2nd Edition of the book builds on the original 2005 book and has been updated for Symbian OS 9. Most importantly, it includes the changes and implications of platform security…
"This book is an essential guide for anyone wishing to start developing applications for Symbian OS v9. It includes sections about the architecture of Symbian OS, the build environment, Symbian OS strings, buffers and data collections, platform security, asynchronous programming using active objects and threads, the client-server framework and GUI application programming."
The book isn’t just for beginners. There’s a great Client Server example using the latest Symbian OS 8 classes. The book also covers processes, threads and synchronisation.
Sometimes coding books have more code than explanation and you end up feeling the author is more interested in coding than explaining how things work. Not so with this book. In fact, it’s the complete opposite. Everything you need to know about coding for Symbian is explained in painstaking detail - this gives you a deep allround view of not just how things work but also why they work that way.
The book also benefits from not being written in-house by Symbian. For example, it briefly and fairly considers other platforms such Windows Mobile, Palm, BlackBerry and and Linux. It also covers more than just Symbian libraries in that it explains how to build S60 and UIQ applications as well as how to understand and use their UI classes.
The only misleading information I found was concerning Carbide.c++ Express. The book explains that the free Express edition is for non-commercial development and infers that commercial developers should look instead to Carbide.vs for a free tool. Up until Carbide.c++ 1.2 it was indeed the case that the license agreement forbid commercial development although there was no way for Nokia to enforce this - and developers concerned about this could have built their final application via the command line instead. As of Carbide.c++ 1.2 (probably after this book was completed) the non-commercial restriction was removed. I recommend Carbide.c++ Express over Carbide.vs for ease of use ‘out of the box’ - Carbide.vs needs too many hidden fixes and tweaks to make it usable.
I thoroughly recommend this book for people coming from other platforms such as Linux, the PC or Windows Mobile.
Note: The source code for the book can be found on developer.symbian.com.