Saturday, December 10, 2005

Symbian Training

this last week I had my first contact with the Symbian OS, the most used operating system for 3G mobile phones. I was in Campina Grande for a basics course of Symbian.

at first it seems very confusing and difficult to develop applications for the Symbian OS, the learning curve is high, but for those who have a solid c++ background it is easier to understand the variations of different patterns that are embedded in this operating system focusing on a restricted memory and processing platforms.

the main differences to normal c++ programming are handling exceptions with trap/leave (you have tu use a cleanup stack) and descpritors, the mechanism for using strings, (this is what I found most complicated at first glance, you have too much options to do basically simple operations: handle strings).

but even the descriptors have good points:
- you can treat text and binaries in the same structure (no needs for strxxx and memxxx functions);
- the descriptors have the maximum size and length inside the structure, so strings are not terminated with '\0' anymore. this is more secure as it prevents buffer overflows.

besides that, the application framework is based on the MVC (model-viewer-controller) architecture and for this reason it creates 5 .cpp files for a simple hello world example :P

my personal comment is that developing for the Symbian OS is not that much difficult or different from standard c++ after a little of sought, but it is not simple either for application developers that are beginning and don't have much experience with c/c++. Even though if you are interested in developing applications for mobile, it is worth to take an in-depth look in Symbian, which is the market leader in a robust embedded environment for diverse applications where people are not used to crashes and blue screens.

below are some very good references for symbian, including a whole blog only for descriptors: