<pre> Author/s : Leigh Edwards, Richard Barker Publisher : Addison-Wesley Category :C# and .NET Review by : Lasse Koskela Rating : 9 horseshoes</pre> I picked up this book with the purpose of learning about Symbian development on smart phones and to refresh my C++ grammar. Having heard of other Symbian and Series XX books, I had my doubts regarding the quality of the book's content. As a pleasant surprise, the authors have done a good job in creating a well-structured book that leads a newbie into the world of Series 60 programming. First of all, as the authors state in the preface, prior knowledge of C++ is a prerequisite for getting the most out of this book. On the other hand, because the APIs use a lot of constructs specific to Series 60 development (e.g. how to allocate memory, how to do I/O, string/descriptor classes, etc.), even a beginner like me can quickly build up basic skills with the sole help of this book and some old-fashioned hard work. The book starts out with chapters describing the development environment, including basic how-to's for building Series 60 applications with the command-line tools, Microsoft Visual Studio, Metrowerks CodeWarrior, and Borland C++ Builder. Important stuff that could've warranted more attention -- my first gripes with this book. Next, the authors introduce Symbian/Series 60 specific concepts such as the naming conventions, the new memory allocation scheme and exception handling, descriptors, collection classes, Active Objects (asynchronous services), file I/O, and the client/server architecture that forms the basis for all Symbian applications. I was especially delighted about the clarity of this section although I would've preferred seeing more code snippets. After introducing the different architectures to choose from (control-based, dialog-based, view-switching), the vast majority of the book is dedicated to describing how particular APIs of the Series 60 platform are used for creating UIs, networking, and manipulating multimedia content. Key system APIs for accessing the phonebook, calendar, etc. application engines are also explained although not in too much detail considering how essential these services can be for many potential applications. The last chapter also describes some best practices and tools for quality assurance, which is no doubt a useful addition to a book like this (although more attention could've been given to unittesting, which is only mentioned in passing). I am very satisfied with this book. Even though I would've wanted more sample code and more detail in many parts of the book (the authors refer to sample applications distributed along with the Series 60 SDKs, which was a bit annoying), this book is packed with information and the content is well balanced as a whole. I won't be looking around for another Symbian/Series 60 book now that I've got this one.