Approaching mobile application development in 2017

in Technology   —  

In this article, we look at the two main approaches for mobile application development: native and cross-platform.

We explain the benefits and limitations of each and layout which approach should be selected depending on the mobile experience and functionality you plan to deliver. We also look at how these approaches can be combined to deliver the best possible experience within tight constraints.

Today’s landscape

The smart phone reigns in today’s digital landscape, but Android and Apple devices use entirely different operating systems and have completely different programming languages for developing mobile apps. While Android apps are written in Java, Apple iOS apps are written in Objective-C or Swift.

Native app development

Creating a native app means that it has been developed from the ground up, for a particular platform or device. It is written in a programming language that is supported by that platform or device:

  • Java for Android
  • Objective-C and Swift for iOS
  • C# for Windows Phone

A large advantage in creating an app for a specific device and operating system means that it can be integrated with device-specific hardware and software. This allows your team to link the app with the device’s built-in features and technologies, such as the device’s camera.

With native development, if there is a need to support the application on different mobile devices, you have to write the same app multiple times: once for each of the major operating systems.

This puts your developers at a disadvantage, as it essentially doubles (or even triples) the work involved. This has led to alternative approaches being used more and more. However, where performance is essential, or a highly responsive user experience is desirable, only native app development will do.

Cross-platform app development

Where a mobile application is called ‘cross-platform’, it has been developed for all platforms at the same time, using HTML, CSS and JavaScript (or another language) and can be adapted for the most devices.

There are some frameworks for cross-platform application development, such as PhoneGap, Xamarin and Unity, but we’ll consider them in a separate post.

A common approach is to simply create ‘mobile web pages’, using standard HTML web page templates, and bundle these as an app using tools such as PhoneGap.

This approach is used by some sites, such as LinkedIn, and many news-related websites. However, whilst these are quicker to develop, they have a limited ability when it comes to interacting with the device’s hardware, camera, audio or GPS.

Which approach to choose and when

Ultimately, the final approach you take will depend on the mobile experience and functionality you plan to deliver, so let’s look at what these approaches provide and when they can be used to create the best possible experience.

Choose native development if:

  • Your application needs full access to all device hardware and functionality
  • Your application processes video, audio or images
  • You want a fluid, high responsive user interface
  • The user interface should feel familiar to users on each platform
  • Your application performs complex calculations or works with large sets of data
  • Your application includes encrypted data

Choose cross-platform development if:

  • You want to develop a quick prototype to test and validate a simple concept
  • You need a temporary ‘stopgap’ or promotional application which has a limited lifespan. E.g. a mobile app that accompanies an event
  • Your application has a simple user interface and has limited user interaction, such as listing and showing news content
  • Your user interface has limited scrolling and swiping and users will not be affected by a sluggish screen response
  • Your application does not interact with any device hardware, camera, microphone, geolocation, accelerometer etc.
  • Your application does not process complex data or work with audio or video
  • You are primarily targeting one OS, such as a corporate application, and you do not need a specific user interface that follows guidelines of each platform

Native vs Cross-platform

The following table breaks down the major differences between the two development approaches.




Can access all hardware on the device:

camera, microphone, geolocation, accelerometer, media files, notifications etc.

Full support

Partial support

While some development frameworks provide ‘connectors’, problems will occur due to differences in hardware components. For example, Android has an issue with audio latency, whilst iOS is fine.

Can use the latest capabilities of the device

Full support

No support

The main aim of cross-platform tools is to only support the minimum set of functions that will work reliably across the most common set of devices.

Can include complex or heavyweight algorithms (e.g. video or audio processing) and handle large volumes of data

Full support

All code is handled by native functions and runs at full speed on the mobile device.

Poor support

Complex algorithms are written in intermediate code, which is ported to different devices. Typically these do not run anywhere near as fast as native routines.

User experience and responsiveness. Speed of interaction


All touch and interaction events are handled by native functions. Therefore, the app’s responsiveness to scroll, click, touch is very fast.


All touch and interaction events are intercepted and handled more slowly. This creates a noticeable lag in the responsiveness of the application that deters users on modern, high-performance devices.

Supporting different operating system versions

Full support

Developers can easily target the latest versions of a specific OS, as well as continue to support older versions until more devices are updated.

None / partial support

In most cases, the published mobile app is the same for all versions of a platform OS.

Speed and cost of development

Increased cost / time

A separate application is developed for each platform, i.e. written separately both for Android and for iOS.

Faster / cheaper

A single unified application is developed that can be compiled and released across different platforms.

Optimised user interface for each platform

Full support

There are different user interface guidelines for different platforms. For example, menus, buttons and navigation controls are not placed in the same position on Android as on iOS.

None / partial support

A single, unified application is developed, which usually means choosing either Android or iOS conventions, which users on other platforms will not be familiar with.

Developers are able to use the advantages of new or open-source software libraries

Full support

New and open-source software libraries are often published. These can often be used to handle specific technical or user interface requirements, helping to boost productivity and make the final application more engaging and user friendly.

No support

A unified approach doesn’t allow for this possibility. For example, native Android applications can incorporate fast and beautiful animations from Android Design Support Library, but the cross-platform application cannot. Either such items are not included in the app or development teams will need to recreate something similar.



Android, iOS and Windows all have active and vibrant communities that share leading ideas.


By contrast, there are much smaller communities for each software framework used for cross-platform app development.

Hybrid applications

Thankfully, you don’t always have to make such a hard and fast choice. It is possible to leverage both approaches within the same app and still provide a seamless experience for your users.

To display simple content (such as listing news items) or simple forms (such as user account and settings screens) you can use a cross-platform approach and develop the more demanding elements in the application using a native approach.

This enables you to focus your budget on the features that matter most and make the best choices for your specific time and budget constraints. Apps such as LinkedIn have been developed in this way; as the application evolves, specific screens can be upgraded from cross-platform elements to native.


With the pros and cons of each development approach, you can help keep your development team and stakeholders focused on what functionality and level of user experience your app needs to offer.

While developing native applications offers a superior user experience throughout, cross-platform development is useful when it comes to time and budget constraints, as it can still provide a professional end product.

The hybrid approach is also perfectly valid, as certain screens do not require native development, and is likely to become the future standard. Google have started to consider porting the Swift programming language from iOS to Android, whist JAVA can now be used in some SmartTV apps, so a mixed technology stack looks as if it will become more commonplace, with developers able to select the options that provide the best possible experience.

Read next