ME cross-platform month: The five key tools | Mobile Entertainment

ME cross-platform month: The five key tools

ME cross-platform month: The five key tools
Tim Green

by

General / April 16th 2012 at 10:54AM

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.

This is why a huge number of companies has emerged to offer different approaches to the problem. But broadly, they fall into five camps: JavaScript frameworks, app factories, web-to-native wrappers, runtimes and source code translators.

We've plundered the excellent VisionMobile report 'Cross Platform Developer Tools 2012' to bring you the following analysis of these five key product options... 

JavaScript frameworks

These code libraries can speed up complex web development tasks like managing touch-screen interactions, building cross-browser user interfaces, or managing games sprites. JavaScript frameworks therefore target web developers looking to create touch UIs, achieve cross- platform browser compatibility, deliver native look and feel, or deliver complex game functionality.

Example vendors are jQuery Mobile, Sencha Touch, Cocos2D, DHTMLX Touch, Zepto JS, Impact.js, iUI and Wink.

App factories

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.

Web-to-native wrappers

If you're building a hybrid app, this is what you want. Web to native wrappers deliver hybrid apps using web HTML5, CSS and JavaScript. The web code is packaged with libraries that bridge web code to native functionality – inside a native app shell.

Apps are written in web languages, and access a webView already on the device, plus JavaScript API extensions that let the app use platform capabilities beyond those normally exposed by the browser: notifications, accelerometer, compass, connectivity, geolocation, and the filesystem.

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.

Runtimes

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.

For example, Metismo (now Software AG) converts J2ME apps to C++, ActionScript and JavaScript, and compiles for ARM, MIPS, PowerPC and x86 devices.

Other suppliers include Eqela, Bedrock, XMLVM, MoSync, and Mono.

* VisionMobile's report 'Cross Platform Developer Tools 2012 can be downloaded here.