Native or cross-platform mobile app development?

Are you facing a dilemma choosing the right technology for your mobile app? Our mobile app expert Chris takes a look at native versus cross-platform development.


11-06-2024
Bcorp Logo


You have a design for a great new mobile app and want everyone to be able to run it. What are the best tools to use to make that happen? 

TL;DR:

The right answer to that will depend on a number of factors that we will explore below, but the latest native tools on both Apple iOS and Android are tipping the balance back in favour of native development.

Ok...why?

Both SwiftUI and Jetpack Compose enable you to build powerful interfaces very rapidly. This means you can quickly prototype what your app should look like, and easily build a complex interface when you have decided on a design. 

In both cases, these interface-building tools could be regarded as playing catch-up with the cross-platform tools, where platforms like Flutter and React Native have long supported declarative interface building (which is very much de rigeur). There are other advantages of native tools though, so it does mean you might think again whether native mobile development is the way to go.

I'll explore the trade-offs between native and cross-platform development, and then consider some specific examples where one or the other might be better.

Advantages of native mobile development

Better user experience

Each platform has standard ways of working that users expect (for example, the way that screens stack on iOS, or overlay menus on Android), and the native tools encourage this behaviour. You can reproduce this behaviour for each platform in a cross-platform tool, but it usually needs as much extra code as writing the app separately on each platform.

Wider functionality as default

The native tools support the breadth of features available on each platform better, so if you want to access the camera or the accelerometer or GPS, then native might be a better solution. It is also the case that new features appear in the native apps first - if you want them in your cross-platform app, you are dependent on the cross-platform tool vendors.

Programming for more devices

Both Android and iOS have Watch platforms that can be programmed natively with the same native tools used for programming the phone or tablet. Having learned to program the phone, you have all you need to build a watch app. For Flutter or React Native, it is possible to link to an existing watch app, but if you want to build a watch app, you need to go native.

Native or cross-platform mobile app development?


Advantages of cross-platform mobile development

Less effort to address both platforms

You build it once in React Native or Flutter, and it runs on Android and iOS (and maybe the web too). However, if you want the best user experience on each platform, then the effort balances out. A lot of the effort for many apps is either compiling data for the app (for example, in a language learning app), or accessing back end data (for example in a banking app). Such effort only needs to be done once anyway, and probably in a different language from the one you use for the app.

Consistent user experience

If you want a consistent user experience across all platforms, then cross-platform development is the way to go. It is easy to understand why Facebook developed React Native - they wanted Facebook to look the same on computer, iPhone or Android phone. That was a higher priority for them than following platform guidelines.

Out in the real world, with some use case examples

Launching a brand new app

You have a great idea for a new app, and you want to get it to market as soon as possible. The instinctive reaction is to launch it on both platforms at once. A more sensible move is to launch it on iPhone first. In my experience of the app market in the UK, especially for paid apps, the number of downloads on iPhone will be somewhere between 2 and 20 times as many as on Android - games are an exception to this, but if you are building games, you are probably using different tools anyway). 

An approach to consider therefore would be to build your iPhone app natively using Xcode lets you concentrate on prototyping the best possible app without worrying about different platforms, and is still likely to give you access to 80% of the market. If it is successful there, you then have the confidence to build the Android version. If it's not that successful, you haven't wasted time worrying about two platforms.

Making an app for as wide a market as possible

Say you work for a government agency and want to make an app that people will use infrequently to pay their road tax, or access their pension information. It needs to be available on as wide a set of devices as possible, but doesn't necessarily need to have the flashiest user experience (UX). Cross-platform tools such as Flutter are ideal for this kind of task, delivering functionality to computers, phones and tablets and minimising your codebase (and costs).

Native or cross-platform mobile app development?


Making an app for a third-world market

I worked with a team in Nigeria to build an app to provide advice and support to rural farmers. While they all have smartphones, none of the farmers have iPhones. It was a no-brainer to build the app with the native Android tools, as there was no call for the iPhone version of the app.

Summary

There are cases where cross-platform tools are the best fit, such as Facebook, and apps that need to run everywhere and are not used often. But if you want your users to love your app, and want to develop it efficiently, you can't do better than use SwiftUI and Jetpack Compose - the latest native tools provided by the device manufacturers.


Would you like to know more?

Whichever road you opt to take, we have a range of expert instructor-led Mobile App Development Training Courses to help you build your next mobile app.

    Share this post on:

    We would love to hear from you

    Get in touch

    or call us on 020 3137 3920

    Get in touch