Choosing the right mobile app for your project: Native vs cross-platform vs hybrid

With the increasing popularity and use of smartphones, more and more people are making use of mobile apps for a range of reasons – to shop, play games, access news and information, engage on social media platforms and other functions.

In fact, Australians love their smartphones so much they have one of the highest smartphone penetration rates in the world. As such, the use of mobile apps has grown significantly.

But with increasing competition between iOS and Android, how do you determine which platform will be best for your app? Here, we compare the pros and cons of native, cross-platform and hybrid apps.

Native Mobile Apps

Native mobile apps

Native mobile apps are developed in a programming language native to the device and operating system, and require one specific app to be created for one target platform.

Native mobile apps are developed in iOS (Objective-c or Swift), Andriod (Java) or Windows Phone (C#/Visual Basic & XAML).

Pros of developing a Native mobile app

  • It provides access to all the features offered by the device and operating system. You will not run up against something other apps can do that your app cannot
  • Allows utilising advanced features, such as Access USB input, complex networking, memory management etc.
  • There are no limitations in terms of app performance and speed. This is important when creating a graphics intensive app, such as a game, or an app that will be used by millions of users
  • Built using technologies recommended and used by the device’s manufacturer
  • It can provide a native user interface ‘out of the box’ – when used correctly the app’s user interface will update as the operating system updates over time
  • There are no limitations in terms of advanced user interface customisation.

Cons of developing a Native mobile app

  • If supporting multiple devices (e.g. iOS and Android), two or more separate apps will need to be developed
  • No code can be shared between the versions of these separate apps
  • Development time can be slow (if supporting two or more separate apps)
  • Testing time is affected, as two or more completely separate codebases need to be tested.

RELATED: Not all apps are created equal: Mobile apps vs mobile-optimised web apps

Cross Platform Mobile Apps

Cross-platform mobile apps

Cross-platform mobile apps are developed using an intermediate language, such as Javascript, that is not native to the device’s operating system. This means that some, or all, of this code can be shared across target platforms – for instance, across both iOS and Android.

Cross-platform apps are different to HTML5 hybrid apps as hybrid apps usually incorporate a mix of native app and mobile app concepts.

Cross-platform apps are developed with Xamarin, Appcelerator, React Native and NativeScript.

Pros of developing a cross-platform mobile app

  • Code can be shared between different versions of the apps across devices (possibly up to 80%)
  • The User Interface is rendered using ‘native’ controls, so UI performance can be as fast as native.

Cons of developing a cross-platform app

  • Not all code can be shared, so some native code may need to be written
  • Speed can be impacted, as some the intermediate language may need to be interpreted ‘on the fly’
  • Access to the device and operating system features rely on the framework or plugin support
  • User interface customisation is dependent on the framework support

Some examples of cross-platform apps include

RELATED: Hybrid mobile apps: Reach more people, faster and cheaper

Html5 Hybrid Mobile Apps

HTML5 hybrid mobile apps

HTML5 hybrid mobile apps are cross-platform apps but render the user interface using an embedded web browser, leveraging HTML, CSS and Javascript.

HTML5 hybrid apps are developed with Cordova, Trigger.IO, Ionic Framework and Telerik Platform.

Pros of developing an HTML5 Hybrid mobile app

  • Code can be shared between different versions of the apps across devices (possibly up to 80%)
  • Building the core part of the app using web technologies allows for faster development time (dependent on your developer, of course)
  • Libraries, such as Ember, AngularJS, React, PaperJS, can be leveraged for web development
  • The core of the app can be updated without going via the AppStore (via "hot code push")

Cons of developing an HTML5 Hybrid mobile app

  • Not all code can be shared, so some native code may need to be written
  • Speed can be impacted, as interaction is via the embedded web-browser control
  • Access to the device and operating system features are dependent on the framework or plugin support

HTML5 UI frameworks

If you’re just leveraging Cordova to build your app, and not a full Hybrid framework such as Ionic Framework, there are a lot of great UI frameworks to choose from, including:

Some examples HTML5 hybrid mobile apps include