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
- 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.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.