All-in-one with minimum charge: is it possible to save?
By Sibers Mobile Team Leader Igor Chertnekov
Thinking about mobile applications, most customers keep in mind that designed once, their application can be easily redesigned for other platforms. Why, they are quite aware of cross-platform transformations and it is not supposed to be difficult for real professionals. Had they but known about all the complications awaiting for the application and their real saving in comparison to the development of a really nice original application, they would have given up this idea quite readily. Curious to see some justification?
A list of the most popular among the sea of mobile platforms includes: BlackBerry OS; Android OS; iOS; Windows Mobile; Symbian; Bada; Palm WebOS; J2ME, etc.
Porting between devices on one platform
Let’s consider the easiest case of compatibility: iPhone – iPod – iPad.
- iPhone — iPod: goes without any changes.
- iPhone — iPad: the logic does not need any transformations while the design needs certain changes according to the HIG for iPad, as the screen becomes four-fold bigger. Thus, the interface requires redesigning.
Things to keep in mind:
— With all the compatibility, still there is a problem with different versions of the OS. For example, iPhone 2G/iPod 1G does not support applications for iOS 4.0.
— Some “minor” differences include iPhone 3GS and 4 having an auto focus and a high camera resolution as well as a built-in compass; iPod 2G+ has a built-in dynamic; iPhone 3GS+ allows shooting video; iPad supports direct file exchange between the application and a desktop; iPhone 4 has two cameras; iPad does not support the Game Center, and it is just the beginning of a long list.
Cross-platform changes for Android-based devices
With unchanged logic, different models require changing graphics for the screen size; graphics and UI for the keyboard type (screen or physical); graphics and UI for the screen orientation where the keyboard is available.
Things to keep in mind:
— OS versions incompatibility goes without saying; moreover, different devices can have different efficiency, various location of the camera with different orientation (facing the user or facing the world; some Android phones go without a touchscreen).
Cross-platform changes for Blackberry products
With a big number of devices produced without a touchscreen, different devices require special assembling, or the application is going to be a bit too heavy and clumsy. In addition, the 4.5 version, which is still quite popular, does not support many of the convenient APIs, especially those dealing with the interface. As for the interface, Blackberry products have a rather problematic one, which should be written every time from scratch and requires quite substantial design work.
Cross-platform changes for Symbian, WinMobile, etc
The problems are essentially the same and you have already read about the most serious ones – to list a few: different OS versions, resolution, design, keyboards, orientation, etc.
In this case the interface requires ultimate changing including every single detail connected with the API for every platform, namely work with the camera, net, GPS, file system, databases and so forth. In very rare occasions their mathematics and OpenGL graphics stay the same, but it is rather an exception.
Cross-platform modifications cannot but have certain “pleasant” features:
- Android apps cannot use more than 16Mb RAM;
- iPhone apps cannot access sms, calls history, correspondence and file system;
- Blackberry apps require writing their interface from scratch with many standard components having only simple implementation. For example, text fields do not have any visual decorations, and if you need just a field with a simple horizontal bar, it will be necessary to add this feature on request.
- BB and Android are more difficult for debugging with their clumsy emulators.
In fact, the real saving on the development of the second application for the new platform totals from 5% in the least optimistic case till 30% in the most optimistic one.
Of course, we know quite a number of standards and frameworks for writing cross-platform applications, including HTML5 web application; HTML5 in original; PhoneGap; MotherApp; Big5; Rhodes. Why not use them?
You see, all of the mentioned above require a lot of resources. It is impossible to develop games with such frameworks, and they are best only for reference books, guide books and calorie calculators, if you need them. In addition, with one set of graphics your app will be designed for only one platform and look strange on any other.
You get what you pay for, don’t you?