Native vs Cross-Platform – Which is best for Audio Apps?

FutureSonic
19th October 2018

The decision of whether to develop natively or whether to go cross-platform is one of the most important considerations when developing a mobile app. Each method has its own merits, and depending on the kind of app you’re developing, app one route will be preferable over the other. But before we get ahead of ourselves, what are exactly are native and cross-platform apps?

Native Apps

As you know, developers use programming languages to build software, and for the most part the language metaphor holds up. So a native app is one written in the native programming language for that platform. For iOS, these languages are Swift and Objective-C, while the native development language for Android is Java or Kotlin. Like a spoken language, a native language will be completely understood by its associated platform.

However, it’s important to be aware that each platform is only able to understand its own native language. So if you’re creating software natively you’ll have to write multiple sets of code – one for each platform that you support.

Cross-Platform

Cross-platform apps (or hybrid apps) on the other hand, enable to you write one set of code that caters for multiple platforms. By using cross-platform tools like Ionic, React Native or Xamarin, you can write a single set of code but have your app work on both iOS and Android. This also means that your development times are shorter than if you developed separate native apps for iOS and Android. Generally, developing a cross-platform app is cheaper than developing dedicated iOS and Android versions.

So with that in mind, why wouldn’t you choose to develop a cross platform app? Well as good as it might seem on the surface, there are some definite downsides to this approach. Cross-platform apps are written in languages such as C# and Javascript. Mobile platforms don’t understand these languages so a ‘translation’ has to occur and if you’ve ever used Google Translate, you’ll know that translations are never perfect and subtleties and contexts can often be lost. Also, you’re trying to get your app to work on two different platforms with a single code base, so no matter how you go about it there’s always going to have to be a degree of compromise.

Native vs Cross-platform Apps Audio

So which is best?

In our opinion, native development is the best option for the vast majority of apps. Of course, there’s no strict right or wrong answer with this, and there are times when cross-platform might be the better choice. For example, if you’re wanting to develop a fairly simple application that doesn’t make significant use of the device’s native features (microphone, camera etc.), then it might be worth considering cross-platform. Alternatively, you might just be wanting to get an MVP to market quickly and cheaply, in which case cross-platform might be preferable. Either way, it’s worth considering your options carefully as you don’t want to regret your decision further down the line.

Audio Apps

But what about building apps with audio functionality – which method is best then? In general, if you want to develop a more complex app then you’re better off building it natively, and this is no different with audio apps. In fact, specifically developing a native app for iOS is by far your best bet. Unlike iOS, Android suffers from an inherent issue with audio latency which is obviously a major issue for any kind of audio app. Among other reasons, this is why there is a significantly higher number of music related apps on iOS compared to Android.

That’s not to say that developing audio apps on Android is impossible, there is a small handful out there and there are even cross-platform solutions. Superpowered, for example is a platform that allows for audio development across Android, iOS and desktop. However, they too are quick to point out the audio limitations on Android.Music App on PhoneUltimately though, developing a native app is going to be best in most cases, even more so when it is audio related. But as mentioned earlier, it’s worth considering your options carefully before making a decision that you might come to regret later on. If you’re looking at developing an app with audio functionality, then why not get in touch today and find out what we can do for your project.


In our opinion, native development is going to be the best option for the vast majority of apps, the table below compares the two methods and outlines the differences between the two in a number of different areas.

Native Apps Cross-platform Apps
User Experience  

  • Highly optimised.
  • User experience feels fluid and effortless.
  • Fixes and workarounds can be costly and time consuming.
  • The more complex the app, the more issues are likely to arise.
  • For simple apps the user experience is similar to native apps.
Complexity
  • A single coding language is required.
  • Dedicated debugging tools help you find and fix issues quickly.
  • Toolchain is simple
  • Requires many different coding languages.
  • For specific feature requirements you are still required to write multiple sets of native code.
  • Bugs are time-consuming to fix.
  • Require many third-party dependencies, which are out of your control and can introduce complex issues
Longevity
  • Generally easier to update and maintain.
  • OS updates usually require little development work.
  • iOS and Android are now quite mature, so language changes rarely break native code.
  • Changes to the operating systems you support (iOS, Android etc.) or the cross platform library can break your code.
  • Cross-platform apps can be difficult to maintain, due to third-party dependencies and the rate at which cross-platform libraries change.
  • Historically, cross-platform libraries have a limited shelf-life.
Compromise
  • App is designed for a specific platform.
  • App follows the latest design trends and human interface guideline standards for a system.
  • Unrestricted access to all of the device’s features.
  • Native developers are specialists – they spend all day, every day writing code for a specific platform.
  • App is generalised, not aimed at any particular platform.
  • Optimisation possibilities are limited.
  • Workarounds and fixes will need to be found for issues that aren’t present in native development.
  • Can suffer restricted access to features.
  • Cross platform developers are generalists – they split their time between cross platform tools, iOS, Android and third party libraries.
Risk
  • Can develop applications solely within the eco-system.
  • No requirement to rely on third-party libraries.
  • Reduced complexity makes projects easier to estimate accurately.
  • There’s a risk of the cross-platform library or third-party services being discontinued.
  • Need to agree to additional terms with cross-platform vendors.
  • Less support is available and it’s often community driven only.