Cross Platform Development vs. Native Coding – Which Option is Right For You?

Tue 12 November 2013 Written by Evi
Evi

Mobile developers are now faced with a choice when it comes to development – to aim for an Android or iOS exclusive release or to use cross-platform development tools to aim for both markets. Let’s look at the advantages and disadvantages of each approach:

What is Cross Platform Development?

Cross platform development aims to deliver application releases across all ranges of mobile and web devices. This encapsulates a variety of development techniques such as HTML, CSS, JavaScript deployment, etc.

The most popular framework for cross platform development is PhoneGap from Nitobi (now Adobe). The current release uses HTML 5 and CSS 3 to render, and the underlying core of logic is based on JavaScript. There’s in-built support for cameras, GPS, browsers and accelerometer, and it can be extended through the use of plugins for greater functionality too.

What is Native Coding?

Simply put - native coding is development for a specific release platform. So for example, you would use objective C for iOS releases - or Java for Android releases.

What are the benefits of Cross Platform Development?

The biggest benefit of cross platform development is that you only need to create an application once and it will run anywhere. So you can deploy your software across the Android, Windows and iOS platforms without the need to create multiple versions and multiple release cycles.

What this means essentially is that development teams have an easier time during development and it’s easier to support the application once it’s released into the wild. This brings significant cost advantages, as a single repository of source code will usually only need minor tweaks to overcome any platform specific issues.

For development houses expecting to run their application on all platforms - this is a no brainer. The advantage of being able to deploy cost-effectively on mobile, tablet, and PC devices across all operating systems is just too tempting to pass up.

What are the benefits of Native Coding?

One of the biggest issues with cross platform development is that the application is not native to any device – meaning you can find that performance suffers. For the majority of uses this is probably not a major issue but processor heavy applications will always get a boost when the application has been developed using a native coding approach. Games in particular benefit from the performance increase of native coding.

 Then there’s the all-important question of look and feel. The GUI of a native coding developed application is likely to be a much closer match to the feel of the device it’s being run on than one coded to execute anywhere. An example of a program that benefits from a cross-platform approach would be content driven applications (such as newspapers or any other online publication) which tend to rely on server data rather than local data – as such they need optimization for the communication layer rather than on the device.

Boutique developers with a focus on a single platform are going to find that native coding can support their strategy effectively and there are no significant cost disadvantages of taking this approach. Software houses looking to deploy highly-complex applications may also find that the cost-disadvantages of native coding are outweighed by the performance boost gained by native coding. After all, an application has to be usable for a client to justify its purchase in the first place.