July 8, 2013

Native Code vs. Portable Code in Mobile Application Development

The evolution of the World Wide Web in the past few decades has been quite interesting. While Web 1.0 was all about content consumption, the Web 2.0 era made possible user contribution towards content in the form of websites and social networking sites. Starting around 2010, the web has entered a new phase of evolution. This transition is set to unleash an interconnectivity the likes of which have never been seen before.

Mobile devices will hold center stage during this phase, as connected devices and the Internet of Things make the transition from smart to brilliant. The mobile application development industry will have to match up to the heightened customer expectation of staying connected, anytime, anywhere.
mobile application development

Looking at the stats above, a mobile first strategy has to be an integral part of any software development process. It is important to design the end product with mobile in mind. This is a topic that was covered at the MIT Technology Review Mobile Summit that our CEO David DeWolf attended last month. Facebook, for example, doesn’t even consider desktop design when they are brainstorming and implementing new features. Every user experience design they create is done in the context of how it will look and feel on tablets and smartphones.

Device proliferation has been and will continue to be the #1 challenge faced by mobile application developers. From different screen resolutions to OS variations, mobile phones of today are quite varied. An optimal mobile programming solution will have to address key issues such as cost reduction, flexibility and ease of maintenance.

The right choice of a long-term development path is an important consideration. Native code, portable interpreted code, and cross compiled portable code are three of the most popular approaches in mobile application development. A brief explanation follows:

Native Code – A programming code that runs with a set of instructions and compiled to run on a single processor is dubbed as a native code. While it can be programmed to run on a different processor using software, its performance speed definitely takes a hit as compared to how it would have otherwise performed with its native code on the original processor.

Portable codes – These are designed for seamless movement of software across different platforms. It is a common approach to mobile software development when the cost of switching to a new platform is relatively less in comparison to developing the codes from the scratch.

a.       Portable Interpreted code – It can further be bifurcated into two areas; first is a web application i.e. CSS, JavaScript, HTML5, etc. that can run on any web browser and the second is the native application, a container with a modified browser to run the web application.

b.      Cross compiled portable code – A common portable code is used in this approach which is run by a compiler that can interpret the code. The compiler performs an important function of generating native code for each platform.

Native vs. Portable Code – A Comparison Chart

A Comparison Chart


The tabular representation above can certainly help you come to an informed decision on how to narrow down the best approach to mobile application development. There is no one solution that fits all and can come across as a winner in every situation. It is therefore important to align your business objectives to the pros and cons of each of these popular approaches. A ‘product mindset’ that we follow at 3Pillar helps us in addressing this pertinent issue and many other key concern areas of our customers.