
Last week Symbian Press launched their new book, called Quick Recipes with Symbian OS. Symbian Developer Network has spoken with the lead author, Michael Aubert, to find out more about the book as well as his experiences as a first-time author working with Symbian Press.
Symbian Developer Network: Who is the book for?
Michael Aubert: Our first goal was to introduce Symbian C++ to developers who are not familiar with it.
It is targeted at people who know C++ but have never developed for mobile devices, for example, those who are used to the desktop or server environments and who want to branch into mobile development. This book is also for mobile developers who have previously targeted one of the competing mobile platforms (for example, BREW, Linux, or Windows Mobile) and who are considering working on Symbian OS.
We also wanted the book to be accessible to academic staff and university students, to complement the Symbian Academy program. Finally, for people who already have some experience with Symbian C++, but are not fully-fledged experts in all things Symbian just yet, we wanted to write a book that will help them make the ‘quantum leap’ to the next level of development.
Symbian Developer Network: What can readers expect to learn?
Michael Aubert: Well, the first 75 pages are about the essential, bare-minimum idioms that no Symbian C++ developer can do without. The main section covers 10 different useful and self-contained technologies: the file system, personal information management, networking, messaging, 2D and 3D graphics, multimedia, telephony, local connectivity, and finally location-based services. Readers can either cherry-pick technologies in order to finish their own projects as fast as possible, or go through the whole book step by step and learn it all.
The final chapters are focused on the more complex or platform-specific functionalities of Symbian OS, and cover everything developers need to know to deploy their applications to Symbian smartphones.
What is important is how much of the book the reader will use after he or she has read it. I see Quick Recipes on Symbian OS as the entry point to the world of Symbian OS. We made sure that the reader can find a collection of links to external resources, to help them at every stage of the learning curve.
Each recipe represents code that developers often actually need; the readers will be able to reuse them simply by copying them. The book is structured as a two-weeks learning exercise but the code samples are taken from real-life experience. We know that developers find working example code incredibly useful, so we’ve provided downloads of the code for each recipe, which are available from the book’s wiki page.
Each recipe contains the solution to most of the traps and gotchas that developers will actually face when writing their own versions of the code samples. We tried to cram as many learning-curve-flattening new ideas as we could into the structure of the text.
Symbian Developer Network: What’s the difference between this book and others in the Symbian Press series that target developers with little experience of Symbian C++?
Michael Aubert: I think the main difference is the focus on time management. Each recipe begins by describing a particular problem and announcing how much time the reader will need to code a solution. It also tells you what header files to use, what libraries to link against, and which platform security capabilities to use, so you don’t have to rummage around in the Symbian Developer Library documentation to find that information to get started (though you should still read the documentation of course!).
The book also covers the whole learning curve, not just its beginning, because our target audience also contains experienced developers who will need more than small code samples.
We have condensed the major parts of our combined experiences in order to save everybody as much time as possible because that is the major hurdle people face when learning Symbian C++ development: time. That’s another reason for placing so much emphasis on providing useful, re-usable code samples.
Symbian Developer Network: What is your experience with Symbian and Symbian OS?
Michael Aubert: After a four months internship getting to grips with the UnixWare kernel, I joined Symbian’s own Java Team in August 2000, right after I graduated from ESIAL, a French engineering school attached to the University of Science in Nancy. That was a relief, let me tell you.
At that time, Symbian was starting the first version of its Graduates Training Program, parts of which I attended before quickly being put to actual work on extending the Symbian Java solution by making Symbian C++ APIs accessible from standard Java code.
That is how, over my nearly six years’ tenure in the team, I got to learn about and use a wide range of mobile technologies: telephony, networking, 3D graphics, multimedia, personal information management, security, application management, and so on…
I went full circle in 2005 when I participated in that year’s Graduate Training Program, this time as a mentor. This was a personal highlight and probably planted the seeds of my involvement in this book.
When I moved on from Symbian, I stayed in the Symbian ecosystem and spent a year developing messaging components and applications for Symbian smartphones as a member of the R&D division in iAnywhere. The diversity of handsets, platforms, and Symbian OS versions definitely brings a new dimension to the work.
Symbian Developer Network: Who else wrote the book?
Michael Aubert: A total of seven people co-authored the book. Between us, by my count, we total 34 years of Symbian C++ experience and 65 years of software development, and most are Accredited Symbian Developers.
Jo Stichbury, Antony Pranata, Jukka Silvennoinen, and Alexey Gusev are already well-known in the Symbian community and beyond. These are people with a tremendous amount of experience who should really be writing books all on their own on a regular basis by now, which some of them do.
Tanzim Husain was seconded to Symbian Press after writing his first chapter. That alone speaks volume about his mad skills.
Jenny Mulholland may be one of the youngest ever authors to work with Symbian Press. I think it is safe to say she has already confounded expectations. Watch out for her in the future!
Me, I am just the lucky hack who is going to shamelessly take all the credit for their hard work!
Symbian Developer Network: How long did it take to write?
Michael Aubert: Ah, now we are talking. What little experience I have now accumulated can be passed on to would-be authors the world around.
From the initial meeting to the book being available in shops, if memory serves, the entire project took about 15 months. Of course, you have to keep in mind that, in this instance, I and all the contributors had day jobs. Amongst the initial list of co-authors, only one had previously worked on a technical book before. The actual professionals at Symbian Press deserve most of the credit, really.
Speaking as a single person without children or pets, writing the first draft of the recipes for one technology, 20-pages long, took 10 days of my free time. You can count on three drafts being needed but the third one only takes half as much time. I’m including the full development of code samples in these estimates.
There was also a lot of work involved in getting the book approved and coordinating the various contributors. Gathering each chapter and actually making a book out of all that is also extremely time-consuming and you can expect to have to read it all at least three times in various states before receiving a printed copy.
At some point along the way, I think I basically lost track of the amount of work that went into the book as the publisher became involved in the formatting of the text.
Symbian Developer Network: What did you find the most taxing section of the book?
Michael Aubert: I think the part that required the most work was squeezing the basic Symbian C++ idioms into as few pages as possible so we could bring the reader to the meat of the book as fast as possible.
That was essential to the mandate of the book so I started by boiling it all down to ‘the bare essentials according to Michael Aubert, new author who doesn’t know anything.’ That is when Jo Stichbury stepped in and saved us all.
For the 3D graphics chapter, I had to figure out how to draw a sphere using only triangles. I did not research the problem until after I had found my solution because I wanted to experience it from the reader’s perspective. I had not done that much Maths since leaving university but I had a blast when the sphere appeared on the screen exactly as I had modeled it on paper.
Technically, the section about writing an MTM is probably the most complex but I had spent a year working on it beforehand so it came easier than I had thought.
Symbian Developer Network: Can we expect to see any further Recipe books in the future? Are you considering branching out into culinary recipes for example, given that your nation is world-renowned for its food?
Michael Aubert: Actual food recipes? For people to eat voluntarily? Oh no. No no no. No no no no. I do intend to remain able to set foot in my home country, you know.
Writing a technical book, however, that was a very enjoyable experience.
There are quite a few technical subjects, in the mobile space and outside, which really interest me and would make great material for books, but I have just started learning about them and so it is going to be some time before I am credible enough to publish again.
Right now, I am full of optimism about this book’s upcoming success and I nervously await the obviously inevitable all-expenses-paid signing trips to exotic lands and guest lecturer offers. What? Too much?
Symbian Developer Network: Do you have any favorite code and culinary recipes to share with us?
Michael Aubert: Well, the ‘Mum’s Smoothie’ recipe we included in the promotional booklet, Quick Recipes Taster, is pretty much my only successful experiment in that area. I figure it’s so healthy everybody’s mother would recommend it.
I also mixed two of my father’s specialties into ’Omelette à la Schatz.’ That’s his name, you see, and I knew I would get a copy of the booklet to surprise him with.
As for favorite source code, from a professional standpoint, I live for the complex 3-dimensional data structures manipulated by multi-threaded algorithms. I only got to implement very few of those since I started in computer science but this is definitely more fun than work for me, especially when written in two separate languages.
My first Java program was a recursive implementation of the Prim algorithm where I injected backtracking. I am still fond of that one. My first object-oriented program was an Alpha-Beta Reversi A.I. written in Eiffel. Those were the days.
My first C program was a compiler. French universities are tough.
Symbian Developer Network: Where can we find out more about the Quick Recipes book?
Michael Aubert: You can find out more about the book at the book overview page. We have also set up a wiki page for the book which will be used to store the sample code, add new recipes, and for links to useful information discussed in the book. Feel free to go to the wiki page, download the sample code, and update the page with your own favorite recipes and links. We see the wiki as an online shadow for the book to gather readers’ feedback, answer queries, and to maybe lay the foundations for a second edition.
I wrote a few lines to promote the book on amazon.co.uk and amazon.com. Since the book requires no prior knowledge of Symbian C++, I am also going to get reviews posted on websites dedicated to general software development, especially on the ones that should have a better Symbian section. We’ll add links to those on the wiki page, too.
