Outlining the quintet of technologies available to developers and publishers.
Any developer considering how to save time and money by using cross platform developer tools has some thinking time ahead of them.
There is no one simple solution. And why is this? Partly, because there are so many different kinds of developers.
A maker of rich mobile games, for example, has very different goals from the web developer looking to harmonise a mobile banking site across different form factors.
We've plundered the excellent VisionMobile report 'Cross Platform Developer Tools 2012' to bring you the following analysis of these five key product options...
Example vendors are jQuery Mobile, Sencha Touch, Cocos2D, DHTMLX Touch, Zepto JS, Impact.js, iUI and Wink.
These code free tools are really best at quickly building simple mobile apps. By using cloud-based drag and drop and wizards, app factories allow non-developers to create their own apps. At their simplest, they deliver RSS-based news readers or no-frills branded apps. At their most advanced they provide a code-free, component-based design approach that includes device and cloud integration.
Examples include AppMkr, AppsGeyser, Wix Mobile, Tiggr, Mobile Nation HQ, Mobjectify, Red Foundry and Spot Specific.
The space is dominated by PhoneGap, which is owned by Adobe. But there are alternatives such as Uxebu’s Apparat.io, Sencha v2, MoSync Wormhole and appMobi. Meanwhile one of the original porting giants, Marmalade, moved into the space with its Marmalade HTML5 development ("Web Marmalade") solution announced earlier this week.
A runtime sits on top of the native OS. In more technical terms, it's an execution environment and cross-platform compatibility layer that shields the app from differences between underlying platforms.
Runtimes vary greatly, and execute code using several different methods – virtualisation, interpretation, just-in-time compilation or ahead-of-time compilation. They're popular with developers looking for broad reach across native platforms or across screens (mobile, PCs, games, TVs).
Runtimes figured heavily in the pre-iPhone mobile world in the form of Java ME, BREW, Flash Lite and so on. But developers lost faith in them thanks to (oh, the irony) platform fragmentation and no direct route to market.
Today’s cross-platform runtimes offload complexity from the device software layer to the design-time development tool. Often, part of the cross-platform translation happens at design-time (through translation into bytecode) and part at run-time (by executing that bytecode).
Marmalade uses standard C++ and cross-platform Marmalade APIs, which abstract the native device APIs. Standard compilers convert this to an ARM-level machine code while platform-specific code is executed by a native abstraction layer packaged with the runtime.
Further examples of runtimes are Appcelerator, Adobe Flex (and AIR), Corona, Antix and Unity.
Source code translators
These solutions take platform-independent source code and convert it to the source code of the native platforms, or compile it directly into a binary or to lower level machine code. It means developers can code once and output multiple native versions with one click. Generally, they target more advanced software developers who need to create cross-platform apps with complex logic and high performance requirements.
Other suppliers include Eqela, Bedrock, XMLVM, MoSync, and Mono.
* VisionMobile's report 'Cross Platform Developer Tools 2012 can be downloaded here.