Cross Platform Development buyers guide

The demand for applications that can be deployed to a wide variety of devices is increasing. These days the possibilities range from desktops running Windows or Mac OS, to tablets and smartphones of assorted sizes running iOS, Windows, Windows Phone, Android or Blackberry. Each has a different screen size and runtime, and different expectations with regards to user experience.

While some of the source code that makes up your application can be the same across all the intended platforms, particularly those modules concerned with the underlying logic of the application, a considerable chunk is likely to be concerned with the user interface, and should ideally be tailored to fit the expectations of the user. There are a number of approaches that you can take to tackle this problem as discussed below.

The web approach

Another option is to write a web application, using HTML, CSS and JavaScript, and then embed the appropriate browser engine so your application can run on the target platform without the user having to explicitly open the web browser. You may need to call native APIs to access device-specific features, but modern JavaScript engines and web browsers can deliver an acceptable performance.

Development frameworks that support this approach include PhoneGap, now owned by Adobe with an open source version available as Apache Cordova, and Sencha Touch which is a business-oriented JavaScript library specifically designed for mobile devices, including not only Android, iOS and Windows, but also Blackberry.

Cross platform development tools

Alternatively you can use cross-platform compilation, writing a single source which is then compiled into multiple native binaries, one for each platform required. The resulting compilations are unlikely to make best use of features that are not shared by all the platforms, although such tools do support conditional statements that can be used to target specific devices. Nevertheless, taking full advantage of all the features offered by the latest version of a platform can be problematic, particularly with regards to the user interface.

Tools that take this approach include Xamarin and Embarcadero RAD Studio. A slightly different approach is offered by Intel INDE (Integrated Native Developer Experience). This is a suite comprising a range of Intel native compilers, tools and frameworks that allow you to target both Android and Windows running on either Intel or ARM processors. One of INDE’s strengths is its ability to tailor your development environment appropriately, be it Android Studio, Visual Studio or the open source Eclipse, and only install the components you need.

Game development

Action games obviously need to make the most of whatever the chosen platforms can offer with regards to high performance graphics, and there are a couple of tools designed specifically with this in mind. The Unity engine supports fast 3D graphics on a wide range of platforms, and can be programmed in C# or a JavaScript derivative known as UnityScript. Its development environment is available in both Windows and Mac versions.

There is also WebGL which is based on OpenGL and provides an API for rendering high-speed 2D and 3D graphics onto an HTML5 canvas element. It is supported by the iOS 8 web browser, by Google Chrome on Android, and by Mobile Internet Explorer in Windows Phone 8.1.

Products

Here are the main products you might consider for cross platform development.

Product

Target Platforms

Strong points

Considerations

Target users

Embedded browser

PhoneGap/
Cordova

Android, iOS, Windows Phone, Windows 8, BlackBerry 10, Firefox OS, Amazon Fire OS

High level of shared code, mature, broad support, familiar JavaScript and HTML, cloud build option

Less platform integration and performance than native code

Business and consumer apps, utilities, casual games

Sencha Touch

iOS, Android, Blackberry 10

Code with JavaScript, option to package with Cordova for wide device support, visual app builder

Windows phone support requires Cordova

Business and consumer apps

Adobe Flash/Air

Flash Player, AIR for Mac, Windows, iOS, Android

Rich designer support in Flash Professional

Larger app size, less suitable for general-purpose apps

Marketing apps, business graphics, casual games

Intel XDK

Web apps or mobile apps supported by Cordova including iOS, Android and Windows Phone

Code on Windows, Mac or Linux and target web apps, or mobile apps via Cordova

Business and conumer apps

Cross platform compilation

Xamarin

Mac, Windows, iOS, Android

Code in C# in Visual Studio or Xamarin Studio, strong Microsoft partner, uses native controls

UI code may need rewriting, some runtime overhead

Business and consumer apps and utilities

Embarcadero RAD Studio

Mac, Windows, iOS, Android

Fast performance of native compiler. Rapid development with visual tools. High code reuse

IDE requires Windows. Cross-platform GUI may look less native. Does not support Windows Phone

Business and consumer apps

Intel INDE

Android 4.3 and up, Windows 7 and higher

Code in Eclipse or Visual Studio, C++ or Java, fast native code

No iOS support, limited targets

High performance data analysis, modelling, games

Appcelerator Titanium

iOS, Android, Mobile Web, Blackberry 10, Windows Phone 8

Code in JavaScript on Mac, Windows or Linux, good code reuse, uses native controls

Windows 8 and Windows Phone apps not fully supported

Business and consumer apps

Unity

iOS, Android, Windows Phone 8, Blackberry 10, Mac, Windows, Linux, Games consoles, web player

Broad platform support, game development with fast 3D graphics, code in C# or JavaScript

Slightly larger app size than native SDK

Game development

ISV Royalty Advert
HardCopy 70 ad