Page 1 of 2
Mobile platforms of the world. No not SciFi hovering pads that you can jump on and zoom around - although that would be good - this is a look at the different mobile phone operating systems and more specifically frameworks that you can create apps for. It's not just a look at the technologies but also the ecosystem that surrounds them - how can you sell your app and who controls this.
First it is worth making the distinction between native and web applications.
A native application usually involves using an SDK and writing code specifically targeting the device in question. The advantage of writing a native application is that you mostly get access to the hardware of the device - GPS, accelerometer, multi-touch, etc. The disadvantage is that the app will only run on the device and you may have to sign an agreement when you download the SDK that determines how you publish and sell the app.
The inability to utilise the custom hardware such as the GPS means that the application has to find some replacement for the missing facility or simply restrict what they do. Of course a web app generally isn't under the control of anyone other than the developer and you are free to market it how you like. On the other hand, web apps are often not accepted into any official application store and this can make marketing more difficult.
iPhone and iOS 4
There is almost no need to introduce this particular platform as it is getting so much publicity - both good and bad - but surprisingly there is a lot to say. The first and most important thing to point out is that to write applications for iOS you need a Mac and you have to use Mac tools. This is only a problem because the majority of programmers work with PCs and PC-based tools. It also means that if you don't have a Mac to hand then there is an initial upfront cost involved in starting iOS development caused by acquiring the hardware.
iOS web apps do have an unofficial app store in the form of OpenAppMkt.
As you need the SDK to develop an iOS application you can only make the App available from Apple's App Store. Authors receive a 70% royalty on sales. Apps can be free but the author still has to pay the App Store membership fee of $99. Apps can also earn revenue by showing advertising arranged by Apple. The App Store has over 200,000 applications and you can charge a one-off fee or a subscription.
One of the big advantages of developing for iOS 4 is that it not only runs on the iPhone but on the iPod and iPad. There are many reasons to think that iPad application development could be more interesting and profitable in the long run than targeting the iPhone - a recent survey suggests that iPad users tend to click on adverts more and spend more time playing games and generally interacting.
iOS 4 devices are a single manufacturer devices and as such you only have to test on the one iPhone, iPad or iPod.
Android is an operating system and development environment from Google targeting mobile phones, tablet and netbooks - although it is most commonly found on mobile phones with a small number of tablet devices. Although the iPhone commands most of the headlines, Android phones have a higher percentage share of the market - iPhone 23%, Android 28%
The operating system is based on the Linux kernel. App development is generally in Java, although in principle you can use other languages. In particular libraries are often created using C and are callable from Java. The Java is compiled to byte code and run on a special VM - the Dalvik VM. The SDK contains a plugin for the Eclipse IDE and everything needed to create and test an application.
Android applications can be created using almost any hardware and OS including the PC running Windows or Linux and the Mac running OS X. Android doesn't support Java ME applications because it doesn't provide the necessary class libraries.
Android is fairly open platform and developers are free to sell native apps anywhere, but there is an Android Market run by Google. Currently it has over 60,000 applications and charges a $25 submission fee. Royalties are 70% to the developer, but it doesn't support subscription charging. Currently in-app advertising isn't supported.
Android devices are made by a number of companies and this makes it harder to ensure that apps run on all devices.
The BlackBerry OS is proprietary to the devices made by RIM. This might make is sound unattractive but it is currently the number one platform in the US with 33% of the market (although recent figures suggest that Android has overtaken the BlackBerry - Android 33% BlackBerry 28%). It represents a single fairly easy target for any developer. However, it also has a completely different character to other smart phones - it's a serious smart phone. All BlackBerrys are good at corporate email and working with Exchange, Domino or Groupwise is their forte.
BlackBerry OS 6 has just been release and this has introduced features that seem to be an attempt to bring the BlackBerry into the same arena as the iPhone, Android, etc. More recent BlackBerry devices will be able to upgrade to OS6, but if you want to cover the full range of devices supporting older versions of the operating system will be necessary. The latest devices have a touch screen, but BlackBerry devices have always been known for their keyboard input rather than anything trendy and many devices have trackpads or trackwheels for additional input.
You can download a development SDK from the BlackBerry site for free. Development is in Java and the IDE if provided as an Eclipse plugin, complete with emulator and debugger. The latest OS 6 includes an improved browser and better location services.
One complication with developing for BlackBerry is if you want to work with the Push service. This is now available to every application and in some cases doesn't need registration.
BlackBerry provides App World as a place to sell what you create. Currently this has around 8000 applications. The royalty rate is 80% but the submission charge is $200 and it doesn't support subscriptions. In-app advertising isn't supported and probably isn't an option for such a business-oriented platform.
The BlackBerry is a different development ball game. It isn't a difficult platform to write for, but it has a different user profile with a predominance of serious business applications. However this doesn't mean that users never take time off and play.