A Short Guide on Cross-Platform Mobile Development

Blackberry, iOS, Android, Windows Phone… the number of existing mobile platforms exceeds all reasonable limits while the developers can hardly choke down their moaning hearing cheery management appeals about supporting another platform…

I think when another mental eclipse caused by progressing deadline occurs, every person who is connected with software development has this banal thought – why is it not possible to make one project that would magically deploy on all the platforms in the native predictable view basing on one source code? There are a few frameworks that make this dream real.

In fact they use 3 approaches: interfaces generation based on

  • javascript/HTML5
  • C-like languages
  • mixing these two approaches above

In some cases device-dependent things are boxed up into one package (in this respect AppCelerator upsets greatly, although the developers swear that do their best to optimize the resultant applications), or at the compilation moment there is a painful choice of the specific platform and device the package should fit (MoSync impressed with endless checkbox list sorted by brands and phones models). Commitment to flexibility constrains available functionality and productivity just because every platform has its own standard set of controls and its own view on optimum UX. In short, everything is not as rosy as we would like it to be, but these projects develop, lofty Partners sections on their sites pepper with sounding names, so we will not throw back this idea determinately – in the end everything depends on project aims and frames.

Below are the results of the experiments, when for the project realization a tool needed to be chosen. The criteria were simple: single code base, cross-platform (iOS, Android was enough), a possibility of creating own GUI elements, connection with web-services.

http://www.appcelerator.com – initially it was planned as development environment in javascript based on its own framework in the specially prepared Eclipse build for mobile development. At the moment HTML5, CSS3 support has been added, critical code parts can be written in ‘native’ languages for the target platform – Java or Objective-C. Nice IDE. To write for iOS you will need MacOS. Basic version is free, although the distributors assure that all this platform capacity consists in usage of additional commercial extensions (50 USD per month).

http://phonegap.com/ – they were among the first who decided to forget about native “look and feel” and turn to the universal tool – web-interfaces. Hence, the major language is HTML. JavaScript, jQuery, CSS can be used as well. Potentially all the major platforms are supported (iOS, Android, WebOs, Bada, Windows Phone, Symbian),practically– to develop for iOS safely, again you will need Mac workstation. It is required to download sdk for every platform. Range of additional libraries for application development is supported; I’d like to highlight Sencha Touch in particular. The process of building final packages is quite interesting-you prepare the project code, upload it to the special service – https://build.phonegap.com/ and geta package ready to install on the target platform in return. Supported features list is here – http://phonegap.com/about/features. Phonegap for open source projects is free, as the status of build-services is still beta – they do not take money from other developers, but the situation can change with the release. Devices support features upset.

http://www.mosync.com/ – the main language is C++. JavaScript and HTML5 can be used. Development environment – specially prepared Eclipse build.The options of integration into Visual studio are described on the site. Blackberry and Windows Phone 7 are not supported, but you can write for everything else – Android, iOS, Windows Mobile, Symbian, JavaMW. You can’t write with Windows for iOS – in this case MacOS is strictly required. There is a detailed description of support status of platform-dependent elements – http://www.mosync.com/documentation/manualpages/featureplatform-matrix. If you write something for GPL – mosyncsdk can be used for free, otherwise the license costs 200 EUR.

http://www.madewithmarmalade.com/ – the main language is C++ (code is written in Visual Studio or Xcode). It was mentioned about a possibility of using insertions written in native languages for the target platform. You can write for iOS with Windows. It has its own devices simulator. There were heard some complaints for resources voracity and the size of binaries in the output. The licence costs 500 USD.

http://xamarin.com/monotouch and http://xamarin.com/monoforandroid – The creators of the free Sharp version have been leading a very interesting project – Mono. They suggest commercial versions of the libraries for development in C# for Windows Phone, Android and iOs. If needed, it is possible to resort to C++, objective-C and work with the ready libraries that are specific for both platforms. A module for each platform costs 400 USD. The development processes in MonoDevelop IDE.

Embarcadero RAD Studio (a modern reincarnation of Delphi and C++ builder). Although their specialization is not mobile development, they provide very promising tools for developing applications for iOS based devices basing on Fire Monkey. They also say about forthcoming support of Android and Blackberry devices. For a single developer the price is a way too expensive (more than 3500 USD). There is no version for mobile development only, and it’s not worth considering until there is no support of additional mobile OS. At the same time it makes sense to keep a look out which side it develops.

If you know some similar tools, it would be interesting to read about them and your experience of using them-both successful and not.

%d bloggers like this: