At the time spend with an iPhone (you see, I’m still under its impression), an interesting thought had crossed my mind. I liked the apps on the iPhone very much, so I’ve decided to look for the same applications on the Android Market. I’ve found only a few, but they looked very similar. So I’ve become interested in the way these applications are developed and read about platforms which allow creating native cross-platform apps for several mobile platformse.g. iOS, Android, Blackberry etc. The results of my research are here.
Firstly, I discovered that there are many services helping developers to build and distribute cross-platform mobile applications: Appcelerator Titanum, Adobe Air, OpenPlug Studio, Marmalade, Rhodes, Phone Gap, maybe there are some others. Some of them also offer creating of desktop apps, some work only with mobile software development. Secondly, I concentrated on platforms for mobile apps and tried to compare the most popular of them: Titanum, Adobe Air, OpenPlug Studio, Rhodes and PhoneGap at some points.
- Supported platforms.
- Appcelerator Titanum: iOS, BlackBerry and Android, Samsung Badu and Windows Mobile 7 Series are in plans.
- Adobe Air: Android, BlackBerry, iOS
- OpenPlug Studio: iOS, Android, Symbian and Windows Mobile
- Rhodes: iOS, Android, Windows Mobile and Windows Phone 7
- PhoneGap: iOS, Android, HP webOS, Microsoft Windows Mobile, Symbian and BlackBerry
As we can see, the most popular platforms are iOS and Android, followed by BlackBerry, Windows Mobile and Symbian.
- I especially liked its “modest” slogan: “Code like it’s the year 2020: HTML5 and CSS3 support”.
- OpenPlug Studio: C / C++ / Objective-C or Java
- Rhodes: HTML5, Ruby
- Appcelerator Titanum offers a platform-independent API to access native UI components including navigation bars, menus, dialog boxes and alerts, and native device functionality including the file system, sound, network and local database.
- Adobe Air claims 3D effects, other features you can find here.
- OpenPlug Studio: GPS, Camera, Contacts.
- Rhodes: GPS, PIM contacts and calendar, camera, native mapping, push, barcode, signature capture, Bluetooth and Near Field Communications (NFC).
- PhoneGap: accelerometer, camera, contacts, compass, file, geolocation, media, network, notifications, storage.
- As we can see, the set of interface elements doesn’t differ very much.
- All services offer support for developers, blogs and a large community: Appcelerator Titanum (including teaching courses), Adobe Air, OpenPlug Studio, Rhodes (blog and Google group), PhoneGap.
- Appcelerator Titanum provides open source and some paid extended modules (including in-app advertising, barcode scanning integration etc.). OpenPlug Studio, Rhodes and PhoneGap are open source. And only Adobe Air has no freeware.
Other platforms offer some interesting possibilities, too. For example, Marmalade has a service for migration iOS content to Android and other platforms.
I think it’s a good idea to develop apps for many platforms at once. But I doubt the possibility of creating really native applications. Cross-platform apps use features which are common for all platforms; therefore they don’t have full access to the device API, what restricts the functionality noticeably (using of multi-touch screen, sensors, back/front camera etc.). And the performance of these applications won’t be very high, too; you can hardly develop a cross-platform 3D-game. Testing cross-platform applications is also quite complicated because of different behavior of interface’s elements and bugs. But some developers say HTML5 is a great solution of these problems and a way to make a cross-platform application functional, convenient and nice-looking on every platform. Do you agree with it?