App Blog

Xcode icon

The three main ways to develop apps
September 22, 2016

Currently there are three main ways to develop applications for mobiles and tablets...

1. Native Development

Usually the first approach that comes to mind, native development uses the programming languages specific to each operating system (OS). This means Objective C for iOS (iPhone/iPad), Java for Android, C# for Windows Phone and so on.

The key advantage of this method is that tailoring the app to a specific operating system creates apps that can make the absolute most of the device’s performance, screen and sound.

The drawback is that if you want to respond to the reality that these days you really should have both an iOS (higher profitability) and an Android (higher market reach and growth) app, this necessarily requires the app to be coded twice, driving up the cost.


2. Hybrid development

There is a cheaper way to get around having to code separately for the two major operating systems, but it’s not really a satisfactory one. Using a hybrid code aggregator such as Titanium, developers can write one lot of code (in Titanium’s case, Java) that will work across both Android and iOS. However, the drawbacks are numerous.

The only way to ensure the code works on both of these fairly different operating systems is by sticking to the lowest common dominator (ie. only features which exist on both the OS. Any special functionality that is unique to one of the systems cannot be touched. Even then, this “lowest common dominator functioning” is somewhat clunky as it cannot be refined to suit either OS. Indeed, the results of fairly simple tasks can be unpredictable.

For these reasons, we strongly advise against “Hybrid development”.

3. A web app

The last alternative solution is to develop an application using standard web languages: HTML , CSS and Javascript . This can be cased within an app that is sold on the AppStore / Google Play. The “app” is merely a shell which contains a WebView through which the actual underlying HTML/CSS/Javascript code is accessed.

The advantage here is that you can develop a quality application that works well on both devices because it is sidestepping the use of the phone’s OS, although it still doesn’t work quite as well as one developed specifically for either OS.

On the flip side, the phone does not have the same power as a computer (although it is close), so the full potential of these scripts has to be pared back a bit to ensure smooth running. Also, you cannot necessarily take advantage of everything the phone has to offer, something that can only be done through a native OS.

So with all these options, which solution should you choose?

Because we value high quality, smoothly-run apps, at Lexington Creative we recommend the gold standard approach – native development. Alternatively, for a slightly lower price and offering a slightly more limited range of features, web development is also a good option.