Page 1 of 3
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.