Wednesday, April 29, 2009

Developing for Symbian, Android and iPhone

The main points of this comparison will be considering the developing phase point of view and not the architecture and the details of the SDK OS itself

First of all, i want to state my admire to the Symbian OS as embedded OS without considering anything about tools used in the development like Carbide IDE , emulator and etc

First point in comparison is the installation phase , that might seems nothing in the point of view of a lot of people but if you have to choose between a number of alternative, it always make sense to choose the easiest one as long as this choice will not cause trouble in the future.

When considering the installation guide of Symbian developing tools, you will have to install of 3 programs in certain order with almost defined paths and until now “Y:2009” you have to put your workspace within certain places in the your installation directory or you will not be able to compile and run your projects which is not the case in any other SDK it have ever used.

In Android SDK, thanks to Google documentation, the installation phase turns out to be couple of easy and clearly explained steps that you maximum takes from you 10 minutes without including the downloading part :D

Despite that iPhone is developed on MAC OS which is Linux based OS "famous for being command line OS", the installation phase doesn't exceed clicking few "i agree", "continue" buttons and done, you are ready to develop

The next point in comparison is the documentation of the SDK itself
When considering Symbian API, the documentation sucks and i am sorry to say that but i damages more than it benefits, in that link for example you will see the methods and all variables are listed in HTML single line at the top of the page so it is very hard to know which methods do which job, so you have to scroll all over the page “for infinity” to get general idea about the use of the class, methods and what information does it provides

On the other hand in Android and iPhone , the documentation is magnificent and very helpful and that is not because it provide more information than that provided by Symbain but because the way of presenting that information.

The last point in my comparison is the memory handling and leaks finding process

Android by default have a garbage collection so it is very easy for any beginner to get started with Android without having to consider the memory handling while developing.

iPhone SDK provides a tool named Instrument that provide developers with hints about lines in the code that generate memory leaks so developer can check these lines for any error easily. it is clear that this tool helps developer focus on code model and don't waste his time searching for memory leaks holes. for more details

Finally, coming to carbide which provides nothing that helps developers in that issue, The mobile emulator makes a sign "General error:-1" when a leakage occurs but it don't say where that error has occurred. A tool named Hooklogger is supposed to provide carbide developers by a way to indicate where the memory allocation is done and where the freeing is done so developers can identify where leakage has occurred but in my opinion Hooklogger is nothing compared to the Instrument tools provided by iPhone SDK and it isn't that much help.

No comments:

Post a Comment