Developer’s Perspective on Android, BlackBerry, iPhone & Symbian
Although the question whether to choose web or native approach towards mobile applications still holds ground, using the native platform is definitely my preferable line of choice. Simply because it gives more freedom to do cool stuff.
Here’s a quick overview of the most popular mobile application development platforms from a developer’s perspective:
Android application development
Android is developer’s dream – it is free, open sourced, and it is developed and endorsed by one of the most capable software development companies of our times, Google. In order to create applications for Android, one would typically use the currently most popular development language, Java, and the tooling includes first class plug-in and emulator for the popular integrated development environment Eclipse.
Utilizing mature and popular technologies and tools gives one big benefit – a gentle learning curve. And although the Android environment uses familiar technologies, that have been around for awhile, the architecture and the platform itself are new and modern, built from scratch with mobile devices in mind.
BlackBerry app development
RIM also use Java for their application platform. They’ve been pushing their own application development environment, the BlackBerry JDE for quite some time, and their current plug-in for Eclipse is not very mature, yet. Another drawback is, that sometimes the same version of the BlackBerry OS does not seem to behave consistently on different devices. Not a major thing, but still a hitch requiring you to spend more time testing with different devices.
On the other hand, RIM provides software emulators for all of their devices, which are really good. This helps a lot while testing the application against a specific device. Another benefit of the BlackBerry development platform is, that the component model follows similar patterns to those Java developers know from Java SE. Meaning that most Java developers can start developing for BlackBerry pretty quickly.
iPhone app development
To develop for the iPhone (now iOS), one must utilize the free SDK (although the SDK is free, you would need a developer account, which starts at $99/year) and the public APIs Apple provides. iPhone apps are being developed in Objective-C, a language familiar to developers, who have created applications for the Mac before… and to no one else The development environment is Apple’s own XCode, and it runs on Mac OS only – which means that you would need a Mac if you want to create iPhone apps.
Despite the additional investment needed and the lack of alternatives when choosing the hardware and the OS, the tools and documentation Apple provides are excellent. One of the main reason for the success and the number of applications in the App Store is that you don’t have to be a rocket scientist in order to write decent iPhone apps. It helps, though
Symbian app development
Writing for Symbian has been difficult for years. In order to write for Symbian, one must master C++. But knowledge in C++ is far from enough – the platform itself uses constructs, that differ from what the regular C++ developer would expect. For example, in Symbian C++ there is no exception handling, no STL library, no string types, to name a few differences. The modern tools include Carbide.c++, an Eclipse-based IDE for Symbian C++.
Things are getting much better, however, and do so quickly. Symbian OS is already open source in an attempt to make it more popular amongst developers. Not only that, but Nokia is moving things towards their own Qt framework as the primary platform for Symbian development, including Qt Creator as the main development environment. And since Qt is cool and widely popular, especially among C++ developers, this is nothing less than great news for anyone considering Symbian as a development platform. Not only that, but Qt can be used for developing applications for the upcoming MeeGo platform as well.