
Developing Software for Symbian OS - Second Edition –
an Interview with Steve Babin
Jo Stichbury (JCS) of Symbian Press interviewed Steve Babin, author of the popular Symbian Press title “Developing Software for Symbian OS”. Steve’s original book was published in 2005, and has recently been updated to a special second edition, which covers Symbian OS v9. The new book was launched in October 2007 at the Smartphone Show.
JCS: How did you start writing C++ on Symbian OS?
SB: Well, about seven years ago, back when I didn’t have any Symbian OS knowledge at all, I was hired by a small start-up company that made Java accelerators and file compression hardware. They wanted me to come in and implement support for their hardware products so they could be supported on Symbian OS phones. In the US it was very difficult back then to find people with Symbian OS skills, but they knew I had lots of experience in C++ and C and on a variety of different other systems and devices. They basically gave me a charter to dive in and learn everything I needed about Symbian OS and be the Symbian expert at the company. So that was quite a challenge. But I put in the work and got up to speed. That is basically how I got started.
Your first book was very popular. Why did you consider the time was right to create a new edition?
Around the time that the original book was published, Symbian OS v9 phones were just starting to come out. So I knew it was just a matter of time before the book would need to be updated. Now seemed like the right time, since Symbian OS v9 is so widespread. I read last week that 20 million Symbian smartphones shipped in the last three months alone. Virtually all development for Symbian smartphones addresses Symbian OS v9 devices, and updating this book for that version makes a lot of sense.
What changes did you make to the original?
The main change was to cover Symbian OS v9, because the first book focused on Symbian OS v7.0 and v7.0s. A lot of the core areas, like descriptors, active objects and the cleanup stack haven’t changed significantly, but there were updates needed for the new tool chain, and for changes to the UI platforms. One of the other major additions was the introduction of a new chapter on platform security.
Two years in this industry is a very long time. I made updates to cover new development tools like Carbide. c++, and to describe the new phones and some of the new technologies. There were also lots of general improvements to the original text to make it more readable in certain areas, and I made some corrections, for example to make the example code conform more closely with the Symbian OS C++ coding conventions.
What was the hardest part of the book to write?
Well, there were a few difficult chapters. The hardest one to update was the GUI chapter. UIQ 3 has changed so much since UIQ 2, which the original book had covered, so there were a lot of updates to make. I had some help from a number of very good technical reviewers on this section though, so I was thankful for that.
Some other difficult chapters to write were the active objects and the descriptor chapters. Mainly because these are difficult to understand when you are new to them, yet they are crucial to get right if you want to write good code. So I did a lot of struggling to get those just the way that I wanted them.
Who is the book’s target audience?
The main audience is people who are new to Symbian OS: either new developers or ones already experienced, having worked with other operating systems. The book is primarily for people like I was when I first started programming in Symbian OS. It does assume familiarity with C++ but not with Symbian OS. However, I also think the book is very useful for people with some experience of previous versions of Symbian OS if they are just getting started with Symbian OS v9. It’s also good for those who want to learn about UI programming, having previously only worked on Symbian OS writing middleware. Overall, it’s a good book to help you refresh your knowledge of the fundamentals.
So people will be able to write UI applications after reading your book? Are there examples they can re-use?
Yes, a developer will be able to write simple UI applications after reading the book. I focus on the fundamentals of Symbian OS that a developer needs to know and then describe UI programming, covering nine UI elements of the OS, such as edit controls, choice lists, dialogs and menu bars. There are many examples in the book that can be reused, including a basic GUI example that is expanded throughout the book for different examples and can be reused as a starting point for an application.
What valuable lessons did you learn that you've passed on in your book?
I learned a lot of things by making mistakes. Many of the lessons I’ve imparted in the book are to help people who are starting out in a similar situation as mine. I’m trying to ease their transition.
Which developer resources did you use at the time? And which do you use now to stay up-to-date?
I used the SDK documentation a lot at the time, and I still do. When I was starting out, I had the first Symbian programming book (Professional Symbian Programming) and I used that and the SDK examples as starting points. These days, I look at the developer websites too, but at the time there weren’t many. I use Symbian Developer Network, of course, and the developer networks for Nokia, Sony Ericsson and UIQ. I track all the new smartphones releases on the web too, and keep up to date with news and articles on sites like SymbianOne (www.symbianone.com) and NewLC (www.newlc.com).
How does Symbian OS compare to other platforms you've worked on (e.g. Windows Mobile)?
I’ve worked on Linux and Windows, and on a number of real time operating systems, like PSOS and VxWorks and some other proprietary real time operating systems. I’ve come from a more of an embedded background and have done lots of assembly language, device driver and firmware development. But, more recently, I’ve worked with Windows Mobile: Smartphone and Pocket PC.
So as far as how they compare to Symbian OS, I would say that I think the learning curve on Symbian OS is steeper than other systems I’ve worked on. But once I got through it I could see how much you can do. It’s definitely much more object-oriented than other systems I’ve used, and it’s really flexible, a custom fit for mobile devices.
I think it is somewhat easier to get up to speed on Windows Mobile if you know some basic Windows programming. You can also take advantage of the knowledge base out there since it is basically the same paradigm as for Windows desktop. These days, the amount of information about C++ development on Symbian OS is great. But when I started, I could hardly get any hits at all when I searched the web, or looked on newsgroups. But that’s changed now; you can enter something into Google and get a ton of hits.
At the same time your book was launched this year, Symbian Press also released a book about Python development. Should beginner application developers even be bothering with C++ these days? Or should they use one of the runtimes that Symbian OS supports (e.g. Python or Ruby or Flash Lite)? Or use Java?
I am a firm believer of using the easiest tool to do the job, and using what you feel comfortable with. I think that C++ on Symbian OS will always give you the maximum flexibility and performance. So, while it may be more difficult to get up to speed with, it’s a good investment to learn as a beginner, especially if you eventually want to write really powerful, high-performance, full-featured applications. Working in C++ on Symbian OS gives you the best understanding of the operating system itself because the operating system itself is written in C++.
But, that said, my understanding is that some very good applications can be written in those other higher-level languages. I encourage beginner developers to research what can be done with them and use what they feel they need to do the task best, and to match what skills they already have. As a matter of fact, I think even for C++ programmers it is useful to learn these other languages, because you can create certain types of applications more easily with them than you can C++. I’d like to explore these languages more myself, and will be ordering a copy of the Python book!
What Symbian smartphone do you currently use?
I’m lucky that developing on Symbian OS as part of my day job gives me the advantage of access to a lot of different smartphones. So currently, I mainly use the Nokia E61 but I also have a Nokia 9300i, a Nokia E90 and a Sony Ericsson P990. I recently got my hands on a Nokia N95 too.
You recently sat the Accredited Symbian Developer exam, and passed with flying colors. Can you describe the experience? Would you say it tested your skills fully?
Yes, wow, that was a challenging test! I’d say it definitely was very thorough. It’s adaptive and dynamically asks harder and harder questions, based on your previous answers. I felt I was fighting the Borg like in Star Trek! But afterwards, when I’d recovered, I realized I’d been tested well, and was also much more aware of my limits too.
What is your next project? Are you planning another book?
I would certainly like to work on another book at some time in the future, perhaps one that covers other aspects of the UI or porting code from other platforms. I’d like to work with Symbian Developer Network to create other material too - I’ve enjoyed working with everyone there a lot.
We’ve enjoyed it too. Many thanks Steve, for your time for this interview, and for your hard work to complete the second edition of “Developing Software for Symbian OS”.
![]() | Steve Babin is an Accredited Symbian Developer and works at IBM, developing enterprise software for smartphones based on Symbian OS and Microsoft Windows Mobile. He has a BSEE from Louisiana State University and over 20 years of software development and leadership experience on a variety of products – including medical devices, Java accelerators, avionics, Internet appliances, and system-on-chip silicon devices – using numerous operating systems.
Steve lives in Austin, Texas with his wife and daughter. |